Vì vậy, hãy để tôi mở đầu bằng cách nói rằng tôi không có toàn quyền kiểm soát thiết kế db của mình, vì vậy rất nhiều khía cạnh của hệ thống hiện tại không thể thay đổi cho các mục đích của kịch bản này.
Nhận xét về cách chúng ta nên suy nghĩ lại về các khía cạnh của thiết kế có thể đúng nhưng không có ích :)
Tôi có một bảng rất lớn, rộng khoảng 150 trường và khoảng 600m hàng, điều khiển một số lượng lớn các quy trình. Đây là trong tình huống kho dữ liệu vì vậy chúng tôi không có BẤT K update cập nhật / chèn nào ngoài quy trình tải theo lịch trình, vì vậy nó được lập chỉ mục rất nhiều.
Một quyết định đã được đưa ra để thử phân vùng bảng này và tôi có một số lo ngại về việc lập chỉ mục một bảng được phân đoạn. Tôi không có bất kỳ kinh nghiệm nào về phân vùng, vì vậy mọi đầu vào hoặc liên kết đều được đánh giá cao. Tôi không thể xác định cụ thể những gì tôi đang có sau BOL hoặc msdn.
Hiện tại chúng tôi tập hợp trên một lĩnh vực mà chúng tôi sẽ gọi IncidentKey
là một varchar(50)
và không phải là duy nhất - chúng tôi có thể có từ 1-100 bản ghi giống nhau IK
(không có nhận xét nào vui lòng). Chúng tôi thường nhận được dữ liệu mới trên các IncidentKey
hồ sơ cũ để nó cũng không tuần tự.
Tôi hiểu rằng tôi cần bao gồm trường phân vùng của mình IncidentDate
, trong khóa chỉ mục được nhóm của tôi để phân vùng hoạt động chính xác. Tôi đang nghĩ nó sẽ như vậy IncidentKey, IncidentDate
.
Câu hỏi đặt ra là, cơ chế của một chỉ mục được phân cụm sẽ hoạt động như thế nào trên khóa 2 phần trong bảng được phân đoạn, nếu một bản ghi trong phân vùng "mới" phải ở trước một bản ghi trong phân vùng "cũ" trong chỉ mục được phân cụm?
Ví dụ: tôi có 5 hồ sơ:
IncidentKey Date
ABC123 1/1/2010
ABC123 7/1/2010
ABC123 1/1/2011
XYZ999 1/1/2010
XYZ999 7/1/2010
Nếu tôi nhận được một bản ghi mới cho ABC123, 2/1/2011
nó, nó sẽ cần phải nằm trong chỉ mục được nhóm TRƯỚC XYZ999, 1/1/2010
. Cái này hoạt động ra sao?
Tôi giả sử phân mảnh và con trỏ, nhưng tôi không thể tìm thấy bất kỳ thông tin nào về lưu trữ và cấu hình vật lý của các chỉ mục cụm không phân vùng trên các bảng được phân đoạn bằng các khóa hai phần.