修正: 在臨機操作的 SQL Server 計劃快取的 SOS_CACHESTORE 單一執行緒存取鎖爭用造成高 CPU 使用率在 SQL Server 2012年] 或 [2014

請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。

按一下這裡查看此文章的英文版本:3026083
徵狀
當在相同的雜湊桶中發生太多的並行處理插入或臨機操作的 SQL Server 計劃快取觸及的 160,036 其項目限制時,就會發生嚴重爭用 SOS_CACHESTORE 單一執行緒存取鎖。在此情況下,高 CPU 使用率,就會發生在 Microsoft SQL Server 2012年] 或 [SQL Server 2014年。
發生的原因
會發生問題,當 SQL Server 計劃快取叫用它的項目限制,計劃與要插入新的計劃必須收回低成本。這會導致經常爭用提供雜湊資料表的 SQL Server 計劃快取的容量的同步處理 SOS_CACHESTORE 單一執行緒存取鎖。
解決方案

累積的更新資訊

SQL Server 的下列累積更新已先修正問題。

關於 SQL Server 的累積更新

SQL Server 每個新的累積更新包含所有的 hotfix,所有安全性修正程式,都包含在先前的累積更新。請檢查出最新的累積更新 SQL Server:
其他相關資訊
計劃快取有兩個限制、 總大小以及所有計劃的總數。本白皮書會說明大小和項目計數限制 計劃快取內部.計劃快取可保留的項目最大數目是四倍的雜湊桶計數。您可以使用下列查詢,以確認這項資訊:
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' )
例如,在 64 位元系統上的 SQL Server 計劃快取雜湊桶是 40,009。因此,可以容納的 SQL Server 計劃快取的項目最大數目是 160,036。當您使用不同的臨機操作查詢工作負載時,這項限制可能成為瓶頸。在這些情況下,您可以使用這個 hotfix 中的變更。在您安裝此 hotfix,並啟用變更之後所使用的啟動追蹤旗標-T 174、 桶計數增加到 64 位元系統上的 160,001。因此,計劃快取現在可以保留 640,004 的計劃的最大數目。
狀況說明
Microsoft 已確認這是<套用> 一節所列出的 Microsoft 產品的問題。

警告:本文為自動翻譯

內容

文章識別碼:3026083 - 最後檢閱時間:06/22/2015 15:31:00 - 修訂: 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 KbMtzh
意見反應