2011-01-06 30 views

Trả lời

18

Một. Như đã đề cập here:.

"Một nhóm chỉ số xác định thứ tự vật lý dữ liệu trong một bảng A clustered index là tương tự như một thư mục điện thoại, mà sắp xếp dữ liệu theo tên cuối cùng Bởi vì clustered index. quy định thứ tự lưu trữ vật lý của dữ liệu trong bảng , một bảng chỉ có thể chứa một chỉ số nhóm . "

0

1.

Mặc dù có những lý do nhất định cho nó, nó có thể có vẻ một chút lạ mà chỉ có một chỉ số nhóm được cho phép. Thực tế là chỉ số nhóm sắp xếp dữ liệu nội bộ không thực sự giải thích lý do chỉ có một chỉ mục như vậy vì các chỉ mục nonclustered được sắp xếp theo cách giống hệt như các chỉ mục được nhóm. Các chỉ mục Nonclustered có thể bao gồm tất cả dữ liệu của một bảng theo cùng cách mà một chỉ mục được nhóm lại. Vì vậy, trong ít nhất một số trường hợp nó có thể là khá hợp lý để tạo ra nhiều "nhóm" chỉ mục hoặc đơn giản là để làm đi với sự phân biệt hoàn toàn. Nhưng SQL Server sẽ không cho phép bạn tạo nhiều hơn một.

+0

Đây không phải là sự hiểu biết của tôi. Chỉ mục nhóm, theo liên kết của Joe, là về thứ tự lưu trữ thực tế. Thật vô nghĩa khi nghĩ rằng bạn có thể sắp xếp dữ liệu bằng hai thứ tự riêng biệt khác nhau ... Thay vào đó bạn sẽ đặt hàng theo thứ tự, sau đó là thứ tự khác ... do đó chỉ mục được nhóm lại. EDIT: Mặc dù tôi nghĩ rằng bất cứ ai downvoted bạn là một chút khắc nghiệt. – Matthew

+0

@Matthew: Nó không phải là "vô nghĩa" để suy nghĩ của cùng một dữ liệu được sắp xếp theo thứ tự khác nhau. Đó là chính xác những gì sẽ xảy ra nếu bạn tạo hai chỉ mục nonclustered trên cùng một tập hợp các cột - hoặc thậm chí nhiều hơn như vậy nếu bạn bao gồm các cột phụ trong chỉ mục nonclustered sử dụng mệnh đề INCLUDE. Tôi cũng muốn biết tại sao tôi bị bỏ phiếu. – sqlvogel

+0

Không, hai chỉ mục không phân nhóm tạo ra "bản đồ" để định vị nhanh chóng các phần tử dữ liệu trên lưu trữ vật lý ... chúng không thay đổi * trong đó * các bit được cấp phát. Liên kết nó với các giấy tờ vật lý trong một ngăn kéo hồ sơ ... bạn có thể có một hệ thống cây để nhanh chóng xác định vị trí bất kỳ giấy nào, nhưng các giấy tờ vẫn chỉ được lưu trữ theo một thứ tự đơn lẻ. Điều này cũng giống như tại sao hiệu năng 'INSERT' của GUID không tuần tự ... mỗi GUID ngẫu nhiên buộc phải sắp xếp lại tất cả các bản ghi. – Matthew

5

Đối với SQL Server 2005: 1 Clustered Index + 249 nonclustered Index = 250 Index

Đối với SQL Server 2008: 1 Clustered Index + 999 nonclustered Index = 1.000 Index

Các vấn đề liên quan