Tôi chỉ muốn đưa ra một lời cảnh báo: vui lòng chọn chỉ mục theo nhóm của bạn thật cẩn thận ! Mọi bảng dữ liệu "thông thường" phải có một chỉ mục được phân cụm, vì việc có một chỉ mục được phân nhóm thực sự sẽ tăng tốc rất nhiều hoạt động - vâng, tăng tốc , thậm chí là chèn và xóa! Nhưng chỉ khi bạn chọn một chỉ mục được phân nhóm tốt .
Đây là cấu trúc dữ liệu được sao chép nhiều nhất trong cơ sở dữ liệu SQL Server của bạn. Khóa phân cụm cũng sẽ là một phần của mỗi và mọi chỉ mục không phân cụm trên bảng của bạn.
Bạn nên hết sức cẩn thận khi chọn khóa phân cụm - nó phải là:
hẹp (4 byte lý tưởng)
duy nhất (xét cho cùng thì đó là "con trỏ hàng". Nếu bạn không đặt nó là duy nhất, SQL Server sẽ làm điều đó cho bạn ở chế độ nền, khiến bạn tốn một vài byte cho mỗi mục nhập nhân với số hàng và số chỉ số không phân biệt bạn có - điều này có thể rất tốn kém!)
static (không bao giờ thay đổi - nếu có thể)
ngày càng tăng lý tưởng để bạn sẽ không gặp phải tình trạng phân mảnh chỉ mục khủng khiếp (GUID hoàn toàn trái ngược với một khóa phân cụm tốt - vì lý do cụ thể đó)
nó phải là không thể nullable và lý tưởng cũng là chiều rộng cố định - a varchar(250)
tạo ra một khóa phân cụm rất kém
Bất cứ điều gì khác thực sự phải là cấp độ quan trọng thứ hai và thứ ba sau những điểm này ....
Xem một số bài đăng trên blog của Kimberly Tripp ( Nữ hoàng lập chỉ mục ) về chủ đề này - bất cứ điều gì cô ấy viết trên blog của mình đều hoàn toàn vô giá - hãy đọc nó, đọc nó - sống bằng nó!