修正︰ 在 SQL Server 一定執行次要資料庫的查詢取得重新編譯

請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。

按一下這裡查看此文章的英文版本:3181444
徵狀
假設您使用 AlwaysOn 可用性群組功能,在 Microsoft SQL Server 2012,2014 或 2016年。每次執行查詢,以對次要資料庫時,會重新編譯查詢。因為統計資料不是從主要伺服器到次要伺服器的 propagatedcorrectly,就會發生這個問題。如果您執行程式碼剖析工具追蹤時,您會發現類似下列有關的StatMan 這表示 SQL 伺服器正在查詢統計資料︰

SELECT StatMan([SC0], [SB0000]) FROM (SELECT TOP 100 PERCENT [SC0], step_direction([SC0]) over (order by NULL) AS [SB0000]  FROM (SELECT [xxx] AS [SC0] FROM [dbo].[xxx] TABLESAMPLE SYSTEM (7.033584e-001 PERCENT) WITH (READUNCOMMITTED) ) AS _MS_UPDSTATS_TBL_HELPER ORDER BY [SC0], [SB0000] ) AS _MS_UPDSTATS_TBL  OPTION (MAXDOP 1)


附註如果您停用自動更新統計資料] 選項,或啟用 [自動更新統計資料以非同步方式] 選項中,不會發生這個問題。

解決方案
下列的累積更新的 SQL Server,已先修正問題︰ 建議︰ 安裝最新的 SQL Server 累積更新
每個新的累積更新的 SQL Server 包含的所有 hotfix 與安全性修正,全都包含在先前的累積更新。我們建議您下載並安裝最新的累積更新 SQL Server 的︰
参考
深入了解 術語 ,Microsoft 會用其來描述軟體更新。

警告:本文為自動翻譯

內容

文章識別碼:3181444 - 最後檢閱時間:09/22/2016 03:53:00 - 修訂: 4.0

Microsoft SQL Server 2014 Service Pack 1

  • kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB3181444 KbMtzh
意見反應