Clustered index là nhiều loại index Từ đó các bản ghi trong bảng được chuẩn bị vật dụng từ bỏ theo trường index. lúc bảng được tạo clustered index thì bạn dạng thân nó thay đổi một cây index, cùng với các node lá đựng khóa là các trường được index và cũng mặt khác đựng tất cả những ngôi trường còn lại của bảng. Vì các bạn dạng ghi chỉ rất có thể được thu xếp bên trên cây index theo một sản phẩm công nghệ trường đoản cú nhất định phải từng bảng chỉ hoàn toàn có thể tất cả buổi tối đa một clustered index. quý khách hàng tạo thành clustered index như sau:

khi bảng đang gồm clustered index thì các index khác (nonclustered) đã dùng khóa của ngôi trường clustered index làm bé trỏ nhằm trỏ về bản ghi tương ứng (trường hợp bảng không tồn tại clustered index thì một quý hiếm RID nội cỗ được dùng).Quý Khách sẽ xem: Clustered index là gì

Clustered index ko đòi hỏi yêu cầu độc nhất (unique). Nhưng Khi nó không tuyệt nhất thì khóa index được đính thêm thêm 1 quý giá 4-byte tự nhiên nhằm đảm bảo an toàn những node index vẫn chính là tốt nhất. Mục đích của Việc này là làm cho nhỏ trỏ trong các index khác luôn luôn trỏ cho mang đến duy nhất một bạn dạng ghi, khi đó nhỏ trỏ đã bao gồm khóa index + chuỗi 4 byte được thêm thêm.

Việc tìm kiếm theo trường bao gồm clustered index tối ưu rộng so với non-clustered index do nó làm lơ được bước bookmark lookup (do toàn bộ những trường dữ liệu vẫn bao gồm sẵn trên node index). Ta hãy đối chiếu hiệu năng của hai nhiều loại index thông qua một ví dụ: bảng Customer vốn đã có clustered index trên ngôi trường CustomerID; giờ ta hãy copy tài liệu sang 1 bảng new và sinh sản non-clustered index mang đến CustomerID; kế tiếp tiến hành và một câu lệnh trên nhị bảng.

USE AdventureWorks GO SELECT * INTO Sales.Customer_NC FROM Sales.Customer GO CREATE INDEX Idx_CustomerID_NC ON Sales.Customer_NC ( CustomerID) GO -- #1 SELECT CustomerID,CustomerType FROM Sales.Customer WHERE CustomerID = 27684 -- #2 SELECT CustomerID,CustomerType FROM Sales.Customer_NC WHERE CustomerID = 27684


Bạn đang xem: Clustered index là gì

*

Xem thêm: Lệch Múi Giờ Tiếng Anh Là Gì, 33 Thành Ngữ Tiếng Anh Du, Chênh Lệch Múi Giờ Dịch

Cũng bởi tài liệu được lưu cùng với node index đề xuất các lệnh kiếm tìm tìm theo khoảng tầm luôn luôn được hỗ trợ bởi vì clustered index. Trsinh sống lại nhì bảng vào ví dụ trên:

SELECT CustomerID,CustomerType FROM Sales.Customer WHERE CustomerID BETWEEN 20000 & 30000 SELECT CustomerID,CustomerType FROM Sales.Customer_NC WHERE CustomerID BETWEEN 20000 & 30000


*

Hãy trợ thì làm lơ loại lời khuyên (“Missing index…”) của SQL Server. Ta thấy là câu lệnh thứ nhất được triển khai bởi index seek, trong khi câu lệnh lắp thêm hai dẫn mang lại quét bảng (table scan) tuy nhiên ngôi trường yêu cầu tra cứu sẽ gồm index. Lý vì chưng là vì câu lệnh tìm kiếm kiếm theo khoảng nlỗi trên thường trả về các bạn dạng ghi, nếu như dùng index sẽ tạo nên ra những thao tác bookmark lookup (mỗi bạn dạng ghi kiếm được là 1 lần lookup), dẫn cho chi phí tăng vọt. Trong trường thích hợp này nó còn thừa vượt chi phí quét bảng. Vì thế cỗ tối ưu hóa (Optimizer) Lúc reviews các phương pháp vẫn chọn cách quét bảng. Với clustered index thì thao tác làm việc khiêu vũ trực tiếp cho từng node (index seek) luôn luôn đầy đủ để mang được kết quả; vị index seek sẽ là tối ưu nên không có giải pháp như thế nào không giống yêu cầu để ý.

Phiên phiên bản áp dụng: Tất cả những phiên bản