症狀
假設您有許多統計資料和資料表,而這些資料表在 Microsoft SQL Server 2012 或 SQL Server 2014 資料庫中包含許多資料行。 當您執行許多臨機操作查詢以同時從這些資料表中擷取資料時,您可能會在執行期間遇到 CMEMTHREAD 等待。
解決方式
累積更新資訊
此問題已先在下列 SQL Server 累積更新中修正。
建議:安裝最新的 SQL Server 累積更新
SQL Server 的每個新累積更新都包含所有 Hotfix 和先前累積更新的所有安全性修正程式。 我們建議您下載並安裝 SQL Server 的最新累積更新:
更多資訊
當您在 SQL Server 2012 中編譯或重新編譯查詢時,引擎需要從統計資料長條圖取得輸入。 我們需要執行系統表掃描,然後將涉及的表的特定長條圖載入記憶體或快取中。 統計資料) 的這些系統資料表項目 (儲存在系統資料表快取 (CACHESTORE_SYSTEMROWSET) 中。 用來在快取中建立這些項目的記憶體物件不會分割,而且是全域的。
因此,如果您在此作業期間執行並行記憶體配置,您將遇到對此記憶體物件的 CMEMTHREAD 等候。 當您提交大量需要編譯或重新編譯的查詢時,通常會發生這種情況。
此 Hotfix 會變更要分割的全域記憶體物件,讓使用系統資料表快取的並行記憶體配置不會發生爭用,而 CMEMTHREAD 會等候。
如需類似問題的詳細資訊,請參閱 KB 3026082: 修正:系統資料表資料列集快取上的SOS_CACHESTORE執行緒同步鎖定爭用會導致 SQL Server 2012 或 2014 中的 CPU 使用率偏高。
狀態
Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。