徵狀

在您安裝 SQL Server 2014 Service Pack 1 (SP1)、SQL Server 2012 SP3 或 SQL Server 2016 之後,您會在重新開機伺服器前,遇到緩慢的查詢效能與已較高的權限(內核)模式的 CPU 使用量。 您可能也會看到大量的 PAGELATCH_ * 等待。

解決方案

此問題已在下列 SQL Server 累計更新中修正:

每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 我們建議您下載並安裝最新的 SQL Server 累積更新:

原因

SQL Server 使用動態閂鎖升級和降級邏輯(超式/子插銷)。 這可讓您追蹤閂鎖上取得的數量,以及在沒有閂鎖爭用的情況下,取得相同閂鎖所需的時間,以改善 SQL Server 效能和可伸縮性。 然後,根據這個模型來提升合格的閂鎖(超鎖)。 當堆或 BTree (HoBT)上有許多變更(插入/更新/刪除)時,HoBT 相關的閂鎖可能會提升到超鎖狀態。 不過,降級不會自動發生。 您可以在 本文中深入閱讀超式/子鎖。如果這些 HoBTs 之後已解除配置,則已釋放的 HoBT 會傳回全域快取以供重複使用。 重複使用 HOBT 時,即使 HoBT 上沒有任何爭用,它也會重複使用先前已升級的閂鎖。 這會增加 CPU 的消耗。 這種行為會在重新開機伺服器前,增加 SQL Server 的許可權(內核)模式 CPU 使用量。 這個增加通常會在每次執行時加上不超過數個微秒。 您也可能會在 HoBTs 上看到大量的 PAGELATCH_ * 等待,因為這些延伸的超式閂鎖。 

狀態

Microsoft 已確認<適用於>一節所列的 Microsoft 產品確實有上述問題。

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?

Thank you for your feedback!

×