Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Phân vùng theo năm so với các bảng riêng biệt có tên Data_2011, Data_2010, v.v.

Từ góc độ nội bộ, các phương pháp về cơ bản giống nhau.

Hậu trường, khi bạn tạo một phân vùng dựa trên ngày tháng, công cụ SQL sẽ tạo các bảng vật lý riêng biệt cho từng phân vùng, sau đó thực hiện những gì về cơ bản là một UNION khi bạn truy vấn chính bảng đó.

Nếu bạn sử dụng bộ lọc trong truy vấn của mình trên bảng được phân vùng tương ứng với trường phân vùng của bạn (DateField giả sử), sau đó công cụ có thể đi trực tiếp đến phân vùng mà bạn cần cho dữ liệu. Nếu không, nó sẽ tìm kiếm từng bảng vật lý trong bảng logic nếu cần để hoàn thành truy vấn.

Nếu các truy vấn của bạn liên quan đến bộ lọc ngày tháng (nghe có vẻ như chúng sẽ xảy ra từ câu hỏi của bạn) thì tôi có thể nghĩ rằng phương pháp "tùy chỉnh" của bạn không có lợi.

Về cơ bản, lựa chọn bạn cần phải thực hiện là bạn có muốn chịu trách nhiệm cho tất cả các trường hợp logic và góc khuất liên quan đến phân vùng hay tin tưởng các nhà phát triển tại Microsoft, những người đã làm việc này trong nhiều thập kỷ sẽ làm điều đó cho bạn?

Đối với mục đích của riêng tôi, nếu có một khuôn khổ tích hợp cho điều gì đó tôi muốn làm thì tôi luôn cố gắng sử dụng nó. Nó luôn nhanh hơn, ổn định hơn và ít bị lỗi hơn so với giải pháp "tự làm".



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Giải pháp cho cách đọc tệp nhật ký giao dịch SQL Server mà không có bất kỳ lỗi nào

  2. Bạn nên chọn kiểu dữ liệu MONEY hay DECIMAL (x, y) trong SQL Server?

  3. SQL Server chứa chức năng văn bản đầy đủ không trả lại kết quả mong đợi

  4. Cách hiển thị ngày ở định dạng tiếng Đức trong SQL Server (T-SQL)

  5. Trả về danh sách cấu hình thư cơ sở dữ liệu trong SQL Server (T-SQL)