Triệu chứng
Giả sử rằng bạn sử dụng Microsoft SQL Server 2014. Bạn có thể gặp phải hai sự cố sau có trong Ghi chú phát hành của SQL Server 2014:
Thiếu chi tiết chỉ mục báo cáo không chính xác các cột được bao gồm cho bảng được tối ưu hóa bằng bộ nhớ
Vấn đề: Nếu SQL Server 2014 phát hiện thiếu chỉ mục cho một truy vấn trên bảng được tối ưu hóa bộ nhớ, nó sẽ báo cáo chỉ mục thiếu trong SHOWPLAN_XML, cũng như trong các DMV chỉ mục bị thiếu như sys.dm_db_missing_index_details. Trong một số trường hợp, chi tiết chỉ mục bị thiếu sẽ chứa các cột được bao gồm. Vì tất cả các cột được tích hợp ngầm với tất cả các chỉ mục trên bảng được tối ưu hóa bộ nhớ, nên không được phép chỉ định rõ ràng các cột được bao gồm với chỉ mục tối ưu hóa bộ nhớ.
Thiếu chi tiết chỉ mục sẽ thiếu chỉ mục nếu chỉ mục hàm băm tồn tại nhưng không phù hợp cho truy vấn
Vấn đề: Nếu bạn có một chỉ mục HÀM BĂM trên các cột của bảng được tối ưu hóa bộ nhớ được tham chiếu trong truy vấn nhưng không thể sử dụng chỉ mục đó cho truy vấn, SQL Server 2014 sẽ không phải lúc nào cũng báo cáo chỉ mục bị thiếu trong SHOWPLAN_XML và trong sys.dm_db_missing_index_details DMV.
Đặc biệt, nếu truy vấn chứa các vị từ đẳng thức liên quan đến tập hợp con các cột khóa chỉ mục hoặc nếu truy vấn chứa các vị từ bất đẳng thức liên quan đến cột khóa chỉ mục thì chỉ mục HASH không thể được dùng nguyên trạng và sẽ cần có một chỉ mục khác để thực thi truy vấn một cách hiệu quả.
Nguyên nhân
Các sự cố xảy ra do lô-gic chỉ mục bị thiếu trong trình tối ưu hóa truy vấn không phân biệt giữa các chỉ mục không liên cụm truyền thống trên bảng dựa trên đĩa và các loại chỉ mục mới cho các bảng được tối ưu hóa bộ nhớ.
Giải pháp
Các sự cố này được khắc phục lần đầu tiên trong bản cập nhật tích lũy tiếp theo của SQL Server.
Cập nhật tích lũy 1 cho SQL Server 2014 /en-us/help/2931693
Giới thiệu về các bản cập nhật tích lũy cho SQL Server
Mỗi bản cập nhật tích lũy mới dành cho SQL Server chứa tất cả các bản sửa lỗi nóng và bản sửa lỗi bảo mật được tích hợp trong bản cập nhật tích lũy trước đó. Xem các bản cập nhật tích lũy mới nhất cho SQL Server:
Giải pháp thay thế
Để giải quyết những vấn đề này, hãy sử dụng các giải pháp thay thế sau đây:
Giải pháp thay thế cho sự cố: Thiếu chi tiết chỉ mục báo cáo không chính xác các cột được bao gồm cho bảng được tối ưu hóa bộ nhớ
Không chỉ định mệnh đề INCLUDE với các chỉ mục trên bảng được tối ưu hóa bộ nhớ.
Giải pháp thay thế cho sự cố: Thiếu chi tiết chỉ mục bỏ qua thiếu chỉ mục nếu chỉ mục hàm băm tồn tại nhưng không phù hợp cho truy vấn
Trong trường hợp bạn đang sử dụng chỉ mục băm, hãy kiểm tra các truy vấn và kế hoạch truy vấn để xác định xem các truy vấn có thể hưởng lợi từ các thao tác Tìm Chỉ mục trên một tập hợp con của khóa chỉ mục hay các thao tác Tìm Chỉ mục trên các vị từ bất đẳng thức hay không. Nếu bạn cần tìm kiếm trên một tập hợp con của khóa chỉ mục, hãy sử dụng chỉ mục KHÔNG liên cụm hoặc sử dụng chỉ mục HÀM BĂM trên chính xác các cột bạn cần tìm kiếm. Nếu bạn cần tìm kiếm trên vị từ bất đẳng thức, hãy sử dụng chỉ mục NONCLUSTERED thay vì HASH.
Lưu ý: Giải pháp thay thế nằm trong Ghi chú Phát hành của SQL Server 2014
Trạng thái
Microsoft đã xác nhận rằng đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong mục "áp dụng cho".