Tôi muốn xem Nữ hoàng lập chỉ mục, Kimberly Tripp, đã nói gì về chủ đề này:
Tôi sẽ bắt đầu với đề xuất của tôi cho Khóa phân cụm - vì một vài lý do. Thứ nhất, đó là một quyết định dễ thực hiện và thứ hai, đưa ra quyết định này sớm giúp chủ động ngăn chặn một số loại phân mảnh. Nếu bạn có thể ngăn chặn một số kiểu phân mảnh bảng cơ sở thì bạn có thể giảm thiểu một số hoạt động bảo trì (một số trong số đó, trong SQL Server 2000 VÀ ít hơn trong SQL Server 2005) yêu cầu bảng của bạn phải ngoại tuyến. Được rồi, tôi sẽ quay lại phần xây dựng lại sau .....
Hãy bắt đầu với những điều quan trọng mà tôi tìm kiếm trong một khóa phân cụm:
* Unique
* Narrow
* Static
Tại sao duy nhất?
Khóa phân cụm phải là duy nhất vì khóa phân cụm (khi một khóa tồn tại) được sử dụng làm khóa tra cứu từ tất cả các chỉ mục không phân cụm. Lấy ví dụ một chỉ mục ở phía sau sách - nếu bạn cần tìm dữ liệu mà mục nhập chỉ mục trỏ đến - mục nhập đó (mục nhập chỉ mục) phải là duy nhất, nếu không thì mục nhập chỉ mục nào sẽ là mục bạn đang tìm ? Vì vậy, khi bạn tạo chỉ mục nhóm - nó phải là duy nhất. Tuy nhiên, SQL Server không yêu cầu khóa phân cụm của bạn được tạo trên một cột duy nhất. Bạn có thể tạo nó trên bất kỳ (các) cột nào bạn muốn. Trong nội bộ, nếu khóa phân cụm không phải là duy nhất thì SQL Server sẽ "hợp nhất" nó bằng cách thêm một số nguyên 4 byte vào dữ liệu. Vì vậy, nếu chỉ mục nhóm được tạo trên một cái gì đó không phải là duy nhất thì không chỉ có thêm chi phí khi tạo chỉ mục mà còn có không gian đĩa bị lãng phí,
Nguồn: Cuộc tranh luận chính theo cụm ngày càng gia tăng - một lần nữa!