Clustered index là gì

Clustered index là các loại index theo đó những bản ghi vào bảng được sắp đến thứ từ theo trường index. lúc bảng được sản xuất clustered index thì bản thân nó vươn lên là một cây index, cùng với những node lá cất khóa là những trường được index cùng cũng đồng thời cất toàn bộ những ngôi trường còn lại của bảng. Vì các phiên bản ghi chỉ hoàn toàn có thể được bố trí bên trên cây index theo một thiết bị từ khăng khăng đề xuất từng bảng chỉ hoàn toàn có thể tất cả buổi tối nhiều một clustered index. quý khách hàng sản xuất clustered index nhỏng sau:

lúc bảng đang tất cả clustered index thì những index không giống (nonclustered) vẫn cần sử dụng khóa của trường clustered index có tác dụng nhỏ trỏ nhằm trỏ về bản ghi tương xứng (trường hợp bảng không có clustered index thì một quý giá RID nội cỗ được dùng).Quý Khách đang xem: Clustered index là gì

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

Việc tra cứu tìm theo ngôi trường bao gồm clustered index về tối ưu rộng so với non-clustered index do nó bỏ lỡ được bước bookmark lookup (bởi vì tất cả các ngôi trường dữ liệu đang có sẵn trên node index). Ta hãy so sánh hiệu năng của nhì các loại index thông sang 1 ví dụ: bảng Customer vốn đang có clustered index trên ngôi trường CustomerID; giờ đồng hồ ta hãy copy dữ liệu sang một bảng new và tạo non-clustered index đến CustomerID; sau đó triển khai 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




You watching: Clustered index là gì

*



See more: Ứng Dụng Notion Là Gì - Nghĩa Của Từ Notion Trong Tiếng Việt

Cũng vì chưng dữ liệu được giữ cùng rất node index cần những lệnh kiếm tìm tìm theo khoảng tầm luôn được giúp đỡ bởi clustered index. Trlàm việc lại hai bảng vào ví dụ trên:

SELECT CustomerID,CustomerType FROM Sales.Customer WHERE CustomerID BETWEEN 20000 và 30000 SELECT CustomerID,CustomerType FROM Sales.Customer_NC WHERE CustomerID BETWEEN 20000 and 30000




See more: Countertop Là Gì - Countertop Nghĩa Là Gì Trong Tiếng Việt

*

Hãy tạm thời bỏ qua mất loại khuyến cáo (“Missing index…”) của SQL Server. Ta thấy là câu lệnh thứ nhất được thực hiện bằng index seek, trong những khi câu lệnh sản phẩm công nghệ nhị dẫn mang đến quét bảng (table scan) mặc dù ngôi trường buộc phải tìm đang gồm index. Lý vì là do câu lệnh search tìm theo khoảng như trên hay trả về nhiều bạn dạng ghi, nếu như sử dụng index sẽ tạo ra các thao tác làm việc bookmark lookup (mỗi bản ghi tìm được là một trong lần lookup), dẫn đến chi phí tăng vọt. Trong ngôi trường đúng theo này nó còn vượt thừa ngân sách quét bảng. Vì cố kỉnh bộ về tối ưu hóa (Optimizer) khi review những phương án đang chọn lựa cách quét bảng. Với clustered index thì làm việc khiêu vũ trực tiếp mang lại từng node (index seek) luôn luôn đầy đủ để đưa được kết quả; bởi vì index seek đang là về tối ưu buộc phải không có phương án nào không giống cần chăm chú.

Phiên phiên bản áp dụng: Tất cả những phiên bản
Chuyên mục: Giải Đáp