Triệu chứng
Hãy xem xét tình huống sau:
-
Bạn có một thủ tục được lưu trữ tạo một bảng tạm thời trong Microsoft SQL Server.
-
Bạn chạy truy vấn rằng các vấn đề về thủ tục được lưu trữ và truy vấn đáp ứng các điều kiện sau đây:
-
Tham chiếu truy vấn vào bảng tạm thời được tạo bởi thủ tục được lưu trữ.
-
Truy vấn có mệnh đề WHERE không được bao phủ bởi bất kỳ chỉ mục nào và tính năng chỉ mục bị thiếu được bật.
-
-
Giả định rằng thủ tục được lưu trữ được gọi là đồng thời từ nhiều trường hợp. Sau đó, các bảng tạm thời được tạo và bỏ thường xuyên, vốn sẽ dẫn đến việc tạo thường xuyên và xóa bỏ các bản ghi tương ứng cho chỉ mục bị thiếu.
-
Trong trường hợp này, nếu truy vấn đang chờ của quy trình được lưu trữ bị hủy bỏ, bạn có thể nhận được lỗi vi phạm truy nhập.
Giải pháp
Sự cố này đã được khắc phục trong các bản Cập Nhật tích lũy sau đây cho SQL Server:
Bản Cập Nhật tích lũy 2 cho SQL Server 2017
Bản Cập Nhật tích lũy 9 cho SQL Server 2016 RTM
Mỗi bản Cập Nhật tích lũy mới cho SQL Server chứa tất cả các hotfix và tất cả các bản sửa lỗi bảo mật đã được đưa vào bản Cập Nhật tích lũy trước đó. Kiểm tra các bản Cập Nhật tích lũy mới nhất cho SQL Server:
Bản Cập Nhật tích lũy mới nhất cho SQL Server 2017
Cách giải quyết
Giải pháp thay thế cho vấn đề này là bật cờ theo dõi (TF) 2392 mà sẽ ngăn chặn việc thu thập các chỉ mục bị thiếu.
Thông tin Bổ sung
Để biết thêm thông tin về tính năng chỉ mục bị thiếu, vui lòng tham khảo liên kết sau đây:
Trạng thái
Microsoft đã xác nhận đây là sự cố trong các sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".
Tham khảo
Tìm hiểu về thuật ngữmà Microsoft sử dụng để mô tả các bản cập nhật phần mềm.