症狀
假設您在 Microsoft SQL Server 2012、2014 或 2016 中使用「AlwaysOn 可用性群組」功能。 每次您對次要資料庫執行查詢時,都會重新編譯查詢。 發生此問題的原因是統計資料未正確地從主要伺服器傳播到次要伺服器。 如果您執行分析工具追蹤,您會發現與 StatMan 類似的情況,這表示 SQL Server 正在查詢統計資料:
從 step_direction ( (選取 StatMan ([SC0], [SB () 0000]) 以 NULL) [SB0000] 從 (選取 [xxx] 為 [SC0] 中的 [SC0] 為 [SC0]。[XXX] TABLESAMPLE SYSTEM (7.033584E-001 百分比) , (READUNCOMMITTED) ) _MS_UPDSTATS_TBL_HELPER AS ORDER BY [SC0], [SB0000] ) AS OPTION _MS_UPDSTATS_TBL (MAXDOP 1)
附註:如果停用「自動更新統計資料」選項或啟用「非同步自動更新統計資料」選項,則不會發生此問題。
解決方式
此問題已先在下列 SQL Server 累積更新中修正:
- 累積更新 2 SQL Server 2016 SP1
- SQL Server 2016 累積更新 4
- SQL Server 2014 SP2 的累積更新 3
- SQL Server 2014 SP1 的累積更新 8
- SQL Server 2012 Service Pack 3 (SP3 的累積更新 5)
建議:安裝最新的 SQL Server 累積更新
SQL Server 的每個新累積更新都包含所有 Hotfix 和先前累積更新的所有安全性修正程式。 我們建議您下載並安裝 SQL Server 的最新累積更新:
參考資料
了解 Microsoft 用來說明軟體更新的術語。