KB2809338 - 修正:SQL Server 2012 或 SQL Server 2014 執行個體上的「記錄寫入等待」計數器值過高

套用到
SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Express - duplicate (do not use) SQL Server 2014 Web - duplicate (do not use) SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Express SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2012 Enterprise Core

症狀

        
假設您啟用像 AlwaysOn 可用性群組這樣的功能,該功能在 Microsoft SQL Server 2012 或 Microsoft SQL Server 2014 的執行個體中使用日誌集區。 在此情況下,SQL Server 執行個體上日誌緩衝區的日誌寫入等待計數器具有很高的值。 您也會注意到動態管理檢視 (DMVs) 中 CMEMTHREAD 和 WRITELOG 等待類型的高值。 此外,還會產生迷你傾印檔案。

注意:記錄集區是交易記錄檔的記憶體內部快取。 此快取的用途包括:在復原期間最佳化記錄讀取、交易複寫中的復原作業,以及用於「AlwaysOn 可用性群組」功能。

原因

發生此問題的原因是記錄集區對所有資料庫使用記憶體物件的全域指標 (PMO) 。

當許多執行緒嘗試使用記錄集區寫入記錄時,所有執行緒都必須等候記憶體物件的指標,而產生徵狀一節所述的爭用。

解決方式

SQL Server 2014 Service Pack 1

根據預設,SQL Server 2014 的 Service Pack 1 包含此修正程式,而且您不需要新增任何追蹤旗標即可啟用此修正程式。

SQL Server 2014

此問題已在 SQL Server 2014 RTM 版本中修正,但仍需要啟用追蹤旗標 T9024 和/或 8048 才能啟用修正程式。 啟用此追蹤旗標之後,SQL Server 執行個體會在節點層級分割記憶體物件的指標。

記事​​

  • 如果啟用追蹤旗標 T9024 之後問題仍存在,您也可以啟用追蹤旗標 T8048,以在 CPU 層級分割記憶體物件的指標。
  • SQL Server 2014 Service Pack 1 (SP1) 包含此修正程式,而且您不必啟用追蹤旗標。

          

SQL Server 2012

            
注意 SQL Server 2012 Service Pack 3 (SP3) 包含此修正程式,因此您不需要啟用追蹤旗標。

累積更新資訊

SQL Server 2012 SP1 累積更新 3

此問題的修正程式最初在累積更新 3 中發行。 如需有關如何取得此 SQL Server 2012 SP1 累積更新套件的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:

2812412 SQL Server 2012 Service Pack 1 累積更新套件 3 注意 由於這些組建是累積的,因此每個新發行的修正程式都包含所有 Hotfix 和所有安全性修正程式,這些修正程式隨附於先前的 SQL Server 2012 SP1 修正程式版本。 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:

2772858 發行 SQL Server 2012 Service Pack 1 之後所發行的 SQL Server 2012 組建備註: 套用 Hotfix 之後,您必須啟用追蹤旗標 T9024 才能啟用修正程式。 啟用此追蹤旗標之後,SQL Server 執行個體會在節點層級分割記憶體物件的指標。

注意:如果啟用追蹤旗標 T9024 之後問題仍存在,您也可以啟用追蹤旗標 T8048,以將記憶體物件的指標設為 CPU 層級。

Hotfix 資訊

Microsoft 提供支援的 Hotfix。 不過,此 Hotfix 僅用來修正本文所述的問題。 僅將此 Hotfix 套用至發生此特定問題的系統。

如果 Hotfix 可供下載,本知識庫文章頂端有「Hotfix 可供下載」一節。 如果未顯示此區段,請提交要求給 Microsoft 客戶服務與支援以取得 Hotfix。

注意: 如果發生其他問題或需要進行任何疑難排解,您可能需要建立另外一個服務要求。 一般的支援費用將適用於不符合此特定 Hotfix 資格的其他支援問題和問題。 如需 Microsoft 客戶服務及支援服務的完整電話號碼清單,或建立個別的服務要求,請造訪下列 Microsoft 網站:

/contactus/?ws=support 注意:「Hotfix 下載可用」表單顯示 Hotfix 可用的語言。 如果您找不到您的語言,是因為該語言沒有 Hotfix。

SQL Server 2012 的必要條件

若要套用此 Hotfix,電腦必須安裝 SQL Server 2012 SP1。

重新啟動需求

套用此 Hotfix 之後,您不必重新啟動電腦。 必須使用追蹤旗標 T9024 重新啟動 SQL Server。 如需有關如何使用啟動追蹤旗標來設定 SQL Server 的詳細資訊,請參閱 資料庫引擎服務啟動選項。

檔案詳細資訊

此版本的全域 Hotfix 版本具有下表中所列的檔案屬性 (或更新檔案屬性) 。 這些檔案的日期與時間是以國際標準時間 (UTC) 表示。 當您檢視檔案資訊時,它會轉換成當地時間。 若要查看 UTC 與當地時間的差異,請使用 [控制台] 中 [日期和時間] 項目的 [時區] 索引標籤。