Triệu chứng
Khi quá nhiều chèn đồng thời xảy ra trong cùng một bộ chứa băm, hoặc bộ đệm ẩn kế hoạch ad hoc SQL Server đạt đến giới hạn mục nhập 160.036, sự ganh tỵ nghiêm trọng trên khóa quay SOS_CACHESTORE xảy ra. Trong trường hợp này, mức sử dụng CPU cao xảy ra trong Microsoft SQL Server.
Nguyên nhân
Sự cố xảy ra khi bộ đệm ẩn kế hoạch SQL Server đạt giới hạn mục nhập và các gói có chi phí thấp phải được loại bỏ để chèn kế hoạch mới. Điều này gây ra sự bất đồng lớn đối với khóa quay SOS_CACHESTORE cung cấp đồng bộ hóa cho bộ chứa bảng hàm băm của bộ đệm ẩn SQL Server kế hoạch.
Giải pháp
Thông tin Cập nhật Tích lũy
Sự cố này đã được khắc phục lần đầu trong bản cập nhật tích lũy sau đây của SQL Server.
Mỗi bản cập nhật tích lũy mới dành cho SQL Server sẽ chứa tất cả các bản cập nhật nóng và tất cả các bản sửa lỗi bảo mật được bao gồm 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 dành cho doanh SQL Server:
Thông tin Bổ sung
Bộ đệm ẩn kế hoạch có hai giới hạn: Tổng kích cỡ và tổng số của tất cả các gói. Giới hạn kích cỡ và số lượng mục nhập được giải thích trong tài liệu hướng dẫn sau đây:
Số mục nhập tối đa mà bộ đệm ẩn kế hoạch có thể giữ bằng bốn lần số lượng bộ chứa. Bạn có thể xác minh thông tin này bằng cách chạy các truy vấn sau đây:
select name, type, buckets_count
from sys.dm_os_memory_cache_hash_tables
where name IN ( 'SQL Plans' , 'Object Plans' , 'Bound Trees' )
select name, type, pages_kb, entries_count
from sys.dm_os_memory_cache_counters
where name IN ( 'SQL Plans' , 'Object Plans' , 'Bound Trees' )
Ví dụ: trên hệ thống 64 bit, số bộ chứa cho bộ đệm ẩn SQL Server kế hoạch sản xuất là 40.009. Vì vậy, số lượng tối đa các mục có thể phù hợp bên trong bộ đệm ẩn SQL Server kế hoạch là 160.036.
Nếu bạn có khối lượng công việc sử dụng các truy vấn đột xuất khác nhau, giới hạn này có thể trở thành nút cổ chai. Thay đổi được thực hiện bởi hotfix này giải quyết tình huống này. Sau khi bạn cài đặt hotfix này và cho phép thay đổi bằng cách sử dụng cờ theo dõi khởi động "-T 174", số lượng bộ chứa được tăng lên đến 160.001 trên hệ thống 64-bit. Bộ đệm ẩn kế hoạch sau đó có thể giữ tối đa 640.004 gói.
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".