Khắc phục: SOS_CACHESTORE spinlock tranh vào bộ đệm ẩn kế hoạch đặc biệt SQL Server làm sử dụng CPU cao trong SQL Server 2012 2014

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch thuật của Microsoft và có thể được Cộng đồng Microsoft chỉnh sửa lại thông qua công nghệ CTF thay vì một biên dịch viên chuyên nghiệp. Microsoft cung cấp các bài viết được cả biên dịch viên và phần mềm dịch thuật thực hiện và cộng đồng chỉnh sửa lại để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng nhiều ngôn ngữ Tuy nhiên, bài viết do máy dịch hoặc thậm chí cộng đồng chỉnh sửa sau không phải lúc nào cũng hoàn hảo. Các bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này: 3026083
Triệu chứng
Khi quá nhiều đồng thời chèn xảy ra trong cùng một băm nhóm hoặc truy cập bộ nhớ cache của SQL Server kế hoạch đặc biệt của giới hạn mục 160,036 tranh nghiêm trọng trên SOS_CACHESTORE spinlock xảy ra. Trong trường hợp này, sử dụng CPU cao xảy ra trong Microsoft SQL Server 2012 hoặc SQL Server 2014.
Nguyên nhân
Sự cố xảy ra do khi bộ nhớ cache kế hoạch SQL Server đạt giới hạn mục, kế hoạch với chi phí thấp phải được gỡ bỏ cho kế hoạch mới. Điều này dẫn đến cạnh tranh lớn cho spinlock SOS_CACHESTORE cung cấp đồng bộ hóa cho nhóm bảng băm của bộ nhớ cache kế hoạch của SQL Server.
Giải pháp

Thông tin Cập Nhật tích luỹ

Số lần đầu tiên được khắc phục trong bản Cập Nhật tích luỹ sau của SQL Server.

Giới thiệu về Cập Nhật tích luỹ cho SQL Server

Mỗi bản Cập Nhật tích luỹ mới cho SQL Server có chứa tất cả các hotfix và tất cả các bản sửa lỗi bảo mật mà được đính kèm với bản Cập Nhật tích luỹ trước đó. Kiểm tra các bản Cập Nhật tích luỹ mới nhất cho SQL Server:
Thông tin thêm
Bộ đệm ẩn kế hoạch có hai giới hạn, Tổng kích thước và tổng số tất cả các gói. Kích thước và nhập số lượng giới hạn được giải thích báo cáo Kế hoạch bên trong bộ đệm ẩn. Số lượng mục bộ đệm ẩn kế hoạch có thể giữ tối đa là số nhóm bốn lần. Bạn có thể kiểm tra thông tin này bằng cách sử dụng truy vấn sau đây:
select name, type, buckets_count from sys.dm_os_memory_cache_hash_tableswhere name IN ( 'SQL Plans' , 'Object Plans' , 'Bound Trees' ) select name, type, pages_kb, entries_count from sys.dm_os_memory_cache_counterswhere name IN ( 'SQL Plans' , 'Object Plans' ,  'Bound Trees' )
Ví dụ: trên hệ thống 64-bit, nhóm cho bộ nhớ cache kế hoạch của SQL Server là 40,009. Do đó, số mục có thể phù hợp trong bộ nhớ cache kế hoạch của SQL Server, tối đa là 160,036. Khi bạn có một khối lượng công việc sử dụng truy vấn đặc biệt khác, giới hạn này có thể trở thành một bottleneck. Trong trường hợp này, bạn có thể sử dụng thay đổi trong hotfix này. Sau khi bạn cài đặt chuyên biệt hotfix này cho phép thay đổi bằng cách sử dụng theo dõi khởi động cờ -T 174, số nhóm tăng lên 160,001 trên hệ thống 64-bit. Do đó, bộ nhớ cache của kế hoạch bây giờ có thể chứa một số kế hoạch 640,004 tối đa.
Tình trạng
Microsoft đã xác nhận rằng đây là sự cố trong sản phẩm của Microsoft được liệt kê trong phần "Áp dụng cho".

Cảnh báo: Bài viết này được dịch tự động

Thuộc tính

ID Bài viết: 3026083 - Xem lại Lần cuối: 06/22/2015 15:34:00 - Bản sửa đổi: 4.0

Microsoft SQL Server 2012 Service Pack 2, Microsoft SQL Server 2012 Service Pack 1, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Standard, Microsoft SQL Server 2014 Web, Microsoft SQL Server 2014 Service Pack 1

  • kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB3026083 KbMtvi
Phản hồi