Tôi đã xem xét việc sử dụng Chế độ xem được lập chỉ mục để tăng hiệu suất trên một số chế độ xem được sử dụng phổ biến nhất của chúng tôi.
Tuy nhiên, Chế độ xem được lập chỉ mục không hỗ trợ các chỉ mục được phân cụm không duy nhất đi đôi chút so với mức ưu tiên được thiết lập bởi phần còn lại của cấu trúc cơ sở dữ liệu.
Ví dụ, đây là một phiên bản đơn giản hóa của một vài bảng của chúng tôi.
-Groups-
Group ID GroupName
-Users-
UserKey UserName FullName GroupID
Các chỉ mục nằm trên Groups.groupID (Không phân cụm) và Users.groupID (Clustered). Khóa được nhóm trên GroupID trong bảng Người dùng vì thông thường nhất là một phạm vi người dùng từ một nhóm cụ thể sẽ được truy xuất. Rõ ràng bạn sẽ có nhiều người dùng mỗi nhóm, vì vậy chỉ mục cụm này là không duy nhất.
Điều này khiến tôi không chắc chắn về cách tuân theo quyền ưu tiên này khi lập chỉ mục các quan điểm của tôi như ví dụ này, vì tôi không thể có một chỉ mục cụm không duy nhất.
ConsumableID ConsumableVariantID AllowThresholdOverwrite FullPath GroupID ManufacturerID Type ModelID
101 29 1 0.1.2.4. 4 3 3 2
Trên thực tế, giá trị duy nhất trên Chế độ xem này sẽ luôn là duy nhất là cột ConsumableID, do đó tôi không có nhiều lựa chọn về vị trí đặt chỉ mục của mình.
Tại sao Chế độ xem không cho phép các chỉ mục cụm không duy nhất khi các bảng thông thường thực hiện?
(GroupID, UserID)
. Đừng giới hạn bản thân trong một cột duy nhất cho khóa. 2 - Tôi tưởng tượng giới hạn cho một khung nhìn là vì đây là một đối tượng dữ liệu bổ sung cần có các hàng dễ dàng gắn với các chỉ mục NC. Đối với một bảng, khóa CI không phải là duy nhất được gắn thêm vào nó, nhưng tôi nghĩ rằng điều đó sẽ khó khăn hơn với chế độ xem được lập chỉ mục vì nó không phải là một bảng thực tế mà cần phải LẬP LẠI một bảng thực tế.