Tôi có một số bảng rất lớn trong cơ sở dữ liệu của mình, nhưng một lượng lớn dữ liệu này là "cũ".
Do hoàn cảnh nằm ngoài tầm kiểm soát của tôi, tôi không được phép xóa dữ liệu "cũ" này. Hạn chế khác là tôi không thể sửa đổi cơ sở dữ liệu, nghĩa là thêm các nhóm tệp vào nó. Cách mọi thứ đứng ngay bây giờ, mọi thứ nằm trong PRIMARY
nhóm tập tin.
Tôi đã suy nghĩ để phân vùng các bảng này thành một vài phân vùng, chẳng hạn như "mới", "cũ", "lưu trữ" và tương tự. Tôi có một cột "trạng thái" tôi muốn sử dụng cho mục đích này.
Với kịch bản được mô tả và các hạn chế, tôi đã tự hỏi nếu phân vùng có ý nghĩa gì ở đây không. Nói cách khác, nếu bảng của tôi được phân vùng theo cách này, nhưng tất cả các phân vùng nằm trên cùng một nhóm, SQL Server sẽ đủ thông minh để tìm khu vực đặc biệt đó trong tệp bên dưới nơi dữ liệu "mới" của tôi nằm và không chạm vào khu vực có dữ liệu "cũ"?
Nói cách khác, nếu giả sử, 80% dữ liệu của tôi là "cũ". SQL Server có cơ chế tránh truy cập 100% các tệp bên dưới không và chỉ truy cập 20% chứa dữ liệu "mới" (giả sử, tất nhiên, tôi chỉ định cột phân vùng của mình trong WHERE
mệnh đề của các truy vấn).
Tôi đoán để trả lời điều này, người ta sẽ cần phải hiểu cách phân vùng được thực hiện trong nội bộ. Tôi đánh giá cao bất kỳ con trỏ.