Có , các chế độ xem có thể có một chỉ mục được gán và khi chúng thực hiện, chúng sẽ lưu trữ các kết quả tạm thời có thể tăng tốc các truy vấn kết quả.
Cập nhật: Ít nhất ba người đã bỏ phiếu cho tôi về điều này. Với tất cả sự tôn trọng, tôi nghĩ rằng họ chỉ sai; Tài liệu riêng của Microsoft cho thấy rất rõ rằng Lượt xem có thể cải thiện hiệu suất.
Đầu tiên, các chế độ xem đơn giản được mở rộng tại chỗ và do đó không trực tiếp đóng góp vào cải tiến hiệu suất - điều đó là đúng. Tuy nhiên, quan điểm được lập chỉ mục có thể cải thiện đáng kể hiệu suất.
Hãy để tôi đi trực tiếp đến tài liệu:
Sau khi một chỉ mục cụm duy nhất được tạo trên chế độ xem, tập kết quả của chế độ xem được cụ thể hóa ngay lập tức và được lưu trữ trong bộ lưu trữ vật lý trong cơ sở dữ liệu, tiết kiệm chi phí thực hiện thao tác tốn kém này trong thời gian thực hiện.
Thứ hai, các khung nhìn được lập chỉ mục này có thể hoạt động ngay cả khi chúng không được tham chiếu trực tiếp bởi một truy vấn khác vì trình tối ưu hóa sẽ sử dụng chúng thay cho tham chiếu bảng khi thích hợp.
Một lần nữa, tài liệu:
Chế độ xem được lập chỉ mục có thể được sử dụng trong thực hiện truy vấn theo hai cách. Truy vấn có thể tham chiếu trực tiếp chế độ xem được lập chỉ mục hoặc quan trọng hơn là trình tối ưu hóa truy vấn có thể chọn chế độ xem nếu xác định rằng chế độ xem có thể được thay thế cho một số hoặc tất cả truy vấn trong gói truy vấn chi phí thấp nhất. Trong trường hợp thứ hai, khung nhìn được lập chỉ mục được sử dụng thay cho các bảng bên dưới và các chỉ mục thông thường của chúng. Khung nhìn không cần phải được tham chiếu trong truy vấn để trình tối ưu hóa truy vấn sử dụng nó trong khi thực hiện truy vấn. Điều này cho phép các ứng dụng hiện có được hưởng lợi từ các khung nhìn được lập chỉ mục mới được tạo mà không thay đổi các ứng dụng đó.
Tài liệu này, cũng như các biểu đồ thể hiện sự cải thiện hiệu suất, có thể được tìm thấy ở đây .
Cập nhật 2: câu trả lời đã bị chỉ trích trên cơ sở rằng đó là "chỉ mục" cung cấp lợi thế về hiệu suất, chứ không phải là "Chế độ xem". Tuy nhiên, điều này dễ dàng bị bác bỏ.
Hãy để chúng tôi nói rằng chúng tôi là một công ty phần mềm ở một quốc gia nhỏ; Tôi sẽ sử dụng Litva làm ví dụ. Chúng tôi bán phần mềm trên toàn thế giới và lưu giữ hồ sơ của chúng tôi trong cơ sở dữ liệu SQL Server. Chúng tôi rất thành công và vì vậy, trong một vài năm, chúng tôi có hơn 1.000.000 hồ sơ. Tuy nhiên, chúng tôi thường cần báo cáo doanh số vì mục đích thuế và chúng tôi thấy rằng chúng tôi chỉ bán được 100 bản sao phần mềm tại quốc gia của chúng tôi. Bằng cách tạo chế độ xem được lập chỉ mục cho các bản ghi Litva, chúng tôi có thể giữ các bản ghi chúng tôi cần trong bộ đệm được lập chỉ mục như được mô tả trong tài liệu MS. Khi chúng tôi chạy các báo cáo về doanh số bán hàng của Litva năm 2008, truy vấn của chúng tôi sẽ tìm kiếm thông qua một chỉ mục với độ sâu chỉ 7 (Log2 (100) với một số lá chưa sử dụng). Nếu chúng ta làm tương tự mà không cần XEM và chỉ dựa vào một chỉ mục vào bảng, chúng ta sẽ phải duyệt qua một cây chỉ mục với độ sâu tìm kiếm là 21!
Rõ ràng, chính View sẽ cung cấp cho chúng ta lợi thế về hiệu suất (3x) so với việc sử dụng chỉ mục đơn giản. Tôi đã thử sử dụng một ví dụ trong thế giới thực nhưng bạn sẽ lưu ý rằng một danh sách đơn giản về doanh số bán hàng của Litva sẽ mang lại cho chúng tôi một lợi thế lớn hơn nữa.
Lưu ý rằng tôi chỉ sử dụng cây b thẳng cho ví dụ của mình. Mặc dù tôi khá chắc chắn rằng SQL Server sử dụng một số biến thể của cây b, tôi không biết chi tiết. Tuy nhiên, điểm giữ.
Cập nhật 3: Câu hỏi đã được đưa ra về việc liệu Chế độ xem được lập chỉ mục có sử dụng một chỉ mục được đặt trên bảng bên dưới hay không. Đó là, để diễn giải: "một chế độ xem được lập chỉ mục chỉ tương đương với một chỉ mục tiêu chuẩn và nó không cung cấp gì mới hoặc duy nhất cho một chế độ xem". Nếu điều này là đúng, tất nhiên, thì phân tích trên sẽ không chính xác! Hãy để tôi cung cấp một trích dẫn từ tài liệu của Microsoft chứng minh lý do tại sao tôi nghĩ rằng lời chỉ trích này không hợp lệ hoặc đúng:
Sử dụng các chỉ mục để cải thiện hiệu năng truy vấn không phải là một khái niệm mới; tuy nhiên, các khung nhìn được lập chỉ mục cung cấp các lợi ích hiệu suất bổ sung không thể đạt được bằng cách sử dụng các chỉ mục tiêu chuẩn.
Cùng với trích dẫn ở trên liên quan đến sự tồn tại của dữ liệu trong bộ lưu trữ vật lý và các thông tin khác trong tài liệu về cách tạo các chỉ mục trên Chế độ xem, tôi nghĩ rằng có thể an toàn khi nói rằng Chế độ xem được lập chỉ mục không phải là SQL Chọn được lưu trong bộ nhớ cache. chỉ số được xác định trên bảng chính. Vì vậy, tôi tiếp tục đứng trước câu trả lời này.