CLUSTERED INDEX LÀ GÌ

Clustered index là một số loại index từ đó những bạn dạng ghi vào bảng được sắp tới thứ tự theo ngôi trường index. Khi bảng được sản xuất clustered index thì bản thân nó thay đổi một cây index, với mọi node lá cất khóa là phần nhiều trường được index cùng cũng bên cạnh đó chứa tất cả những trường còn sót lại của bảng. Vị những phiên bản ghi chỉ hoàn toàn có thể được thu xếp trên cây index theo một vật dụng tự định hình nên mỗi bảng chỉ rất có thể có tối đa một clustered index. Bạn tạo clustered index như sau:

Khi bảng đã có rất nhiều clustered index thì các index khác (nonclustered) sẽ dùng khóa của trường clustered index làm nhỏ trỏ để trỏ về bạn dạng ghi khớp ứng (nếu bảng không có clustered index thì một giá trị RID nội bộ được sử dụng).

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

Bài Viết: Clustered index là gì

Clustered index không lặng cầu cần duy duy nhất (unique). Mà lại khi nó không tốt nhất thì khóa index được đính thêm thêm một cực hiếm 4-byte bỗng nhiên để đảm bảo an toàn những node index vẫn chính là duy nhất. Mục đích của việc này là để cho con trỏ giữa những index khác luôn luôn trỏ mang đến đến nhất một bạn dạng ghi, lúc ấy con trỏ sẽ của cả khóa index + chuỗi 4 byte được lắp thêm.

Việc đính thêm thêm bởi vậy làm tăng kích thước của clustered index cũng tương tự những index khác, bắt buộc trong đa số tình huống thực tế bạn buộc phải tạo clustered index là duy nhất. Thực tế, theo mặc định một clustered index duy nhất sẽ được tạo lúc khai báo khóa chính.


Việc search kiếm theo trường có clustered index buổi tối ưu hơn so cùng với non-clustered index bởi vì nó bỏ qua được bước bookmark lookup (do tất cả những trường tài liệu đã có không ít sẵn trên node index). Ta hãy đối chiếu hiệu năng của hai nhiều loại index trải qua 1 ví dụ: bảng Customer vốn đã có không ít clustered index trên trường CustomerID; giờ ta hãy copy dữ liệu sang một bảng new và chế tạo non-clustered index đến CustomerID; tiếp đến thực hiện 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


*

Như phương án tiến hành cho thấy, câu lệnh thứ nhất (có clustered index) chỉ có ngân sách đầu tư bằng một nửa so cùng với câu lệnh đồ vật hai (nonclustered index), bởi câu lệnh trang bị hai cần thêm thao tác bookmark lookup (RID lookup sinh hoạt trong hình). Bạn cũng có thể tưởng tượng clustered index là một trong những covering index với độ bao trùm là toàn thể những cột trong bảng, tuy nhiên không chiếm phần thêm không gian lưu trữ riêng đến index.

Xem thêm: Ms Office Là Gì ? Tìm Hiểu Về Định Nghĩa Microsoft Office? Các Ứng Dụng Trong Bộ Phần Mềm Microsoft Office

Cũng vì tài liệu được lưu tuy vậy song với node index cần những lệnh tra cứu kiếm theo khoảng luôn luôn được trợ giúp do clustered index. Trở về hai bảng trong lấy 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 và 30000


*

Hãy tạm làm lơ dòng khuyến nghị (“Missing index…”) của SQL Server. Ta thấy là câu lệnh thứ nhất được tiến hành bằng index seek, trong những khi câu lệnh đồ vật hai dẫn mang đến quét bảng (table scan) tuy nhiên trường đề xuất tìm đã có nhiều index. Tại sao là vì câu lệnh search kiếm theo khoảng tầm như trên thường xuyên trả về nhiều bản ghi, nếu sử dụng index sẽ tạo nên ra nhiều làm việc bookmark lookup (mỗi phiên bản ghi tìm được là một lượt lookup), dẫn đến kinh phí tăng cao. Trong trường thích hợp này nó còn vượt quá kinh phí đầu tư quét bảng. Chính vì vậy bộ về tối ưu hóa (Optimizer) khi đánh giá những phương pháp đã chọn phương thức quét bảng. Với clustered index thì thao tác làm việc nhảy thẳng mang lại từng node (index seek) luôn luôn đủ để mang được kết quả; vày index seek sẽ là buổi tối ưu nên không tồn tại phương án làm sao khác đề xuất xem xét.

Phiên bạn dạng cần sử dụng: tất cả những phiên bản

Những bài viết tương tự

Index góp Tăng tính năng Thực Hiện thế nào Tối Ưu Hóa Câu Lệnh bằng Covering Index Để sử dụng Được Index trong Điều Kiện kiếm tìm Kiếm Của Câu Lệnh

Thể Loại: share Kiến Thức cùng Đồng


Bài Viết: Clustered Index Là Gì – Sql Việt Blog» Blog Archive » Clustered Index


Thể Loại: LÀ GÌ

Nguồn Blog là gì: https://paydayloanssqa.com Clustered Index Là Gì – Sql Việt Blog» Blog Archive » Clustered Index