徵狀
請試想下列案例:
-
您使用的是已啟用 NUMA 的 Microsoft SQL Server 2012 或 SQL Server 2014 實例。
-
SQL Server 已設定為使用多個 NUMA 節點的多個 CPU 核心(例如,每個都有12個內核的4個 NUMA 節點)。
-
您執行一個編譯繁重的工作負荷,從多個併發連線產生較高的編譯速率。
在這種情況下,您不會注意到編譯/秒查詢的結果會增加超過12個的可用核心數。 此外,CPU 可能會顯示100% 的利用率。注意: CPU 飽和度的嚴重性取決於每個 NUMA 節點的核心數,以及您的編譯速率。
原因
發生這個問題是因為 SQL Server 使用的資料結構可能會在並行編譯中針對 NUMA 式硬體上的 CPU 爭用模式產生影響。
解決方案
套用此修正程式後,SQL Server 會以執行緒本機資料取代共用結構的使用。此問題最初是在 SQL Server 的後續累積更新中修正。
SQL Server 2012 SP2 累積更新1 /en-us/help/2976982
SQL Server 2014 的累積更新2 /en-us/help/2967546
SQL Server 2012 SP1 累計更新10 /en-us/help/2954099
每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 查看 SQL Server 的最新累計更新:
因應措施
若要解決此問題,請降低 SQL Server 系統中的編譯速度。
狀態
Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。