Triệu chứng
Khi các chèn đồng thời quá nhiều xuất hiện trong cùng một nhóm băm, hoặc bộ đệm ẩn lập kế hoạch Ad hoc SQL Server đạt đến giới hạn nhập của 160.036, các đối số nghiêm trọng trên SOS_CACHESTORE spinlock xảy ra. Trong tình huống này, một 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 gói SQL Server đạt đến giới hạn mục nhập và các gói có chi phí thấp phải được gỡ bỏ để chèn các gói mới. Điều này gây ra sự ganh đua nặng nề đối với SOS_CACHESTORE spinlock cung cấp đồng bộ hóa cho các Xô bảng băm của bộ đệm ẩn gói SQL Server.
Giải pháp
Thông tin Cập Nhật tích lũy
Vấn đề lần đầu tiên được khắc phục trong bản Cập Nhật tích lũy SQL Server sau đây.
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:
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ố tất cả các gói. Giới hạn về kích cỡ và số lượng truy nhập được giải thích trong giấy trắng sau đây:
Lập kế hoạch internals bộ đệm ẩn
Số lượng tối đa các mục nhập mà bộ đệm ẩn kế hoạch có thể giữ được bốn lần số Xô. 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ố lượng nhóm cho bộ đệm ẩn gói SQL Server là 40.009. Do đó, số lượng tối đa của các mục có thể khớp với bên trong bộ đệm ẩn gói SQL Server là 160.036.
Nếu bạn có một khối lượng công việc sử dụng các truy vấn khác nhau trong Ad hoc, giới hạn này có thể trở thành dấu mũi tên. Thay đổi được thực hiện bởi các địa chỉ hotfix này tình huống này. Sau khi bạn cài đặt hotfix này và bật thay đổi bằng cách sử dụng cờ theo dõi khởi động "-T 174," số lượng Xô được tăng lên 160.001 trên các 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".