症狀
安裝 SQL Server 2014 Service Pack 1 (SP1) 、SQL Server 2012 SP3 或 SQL Server 2016 之後,在伺服器重新啟動之前,您會遇到查詢效能變慢,且權限 (核心) 模式 CPU 使用率提高的問題。 您可能也會看到大量 PAGELATCH_* 等待。
解決方式
此問題已在下列 SQL Server 累積更新中修正:
建議:安裝最新的 SQL Server 累積更新
SQL Server 的每個新累積更新都包含所有 Hotfix 和先前累積更新的所有安全性修正程式。 我們建議您下載並安裝 SQL Server 的最新累積更新:
原因
SQL Server使用動態閂鎖提升和降級邏輯 (超/子閂鎖) 。 這會透過追蹤閂鎖上的取得數目,以及如果沒有閂鎖爭用,取得相同閂鎖所需的時間,來改善 SQL Server 效能和延展性。 然後,符合條件的閂鎖將提升 (基於此型號的超級閂鎖) 。 當堆積或 BTree (HoBT) 上) (插入/更新/刪除等許多變更時,與 HoBT 相關的閂鎖可能會升級為超級閂鎖狀態。 不過,降級不會自動發生。 您可以 在本文中閱讀有關超級/副閂鎖的更多資訊。
如果稍後解除配置這些 HoBT,釋放的 HoBT 會回到全域快取以供重複使用。 重複使用該 HOBT 時,它會重複使用先前升級的閂鎖,即使 HoBT 上沒有爭用。 這會增加 CPU 額外負荷。 此行為會增加 SQL Server 的特殊權限 (核心) 模式 CPU 使用量,直到伺服器重新開機為止。 每次執行時,此增加通常不會超過幾微秒。 由於 HoBT 上的這些延伸超級閂鎖,您可能也會看到大量 PAGELATCH_* 等待。
狀態
Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。