現象
Microsoft SQL Server 2012、2014、または2016で AlwaysOn 可用性グループ機能を使用することを前提としています。 セカンダリデータベースに対してクエリを実行するたびに、クエリが再コンパイルされます。 この問題は、統計情報がプライマリサーバーからセカンダリサーバーに正しく伝達されないために発生します。 プロファイラートレースを実行した場合、次のような状態については、SQL server が統計情報を照会していること を意味します。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 の最新の累積的な更新プログラムをダウンロードしてインストールすることをお勧めします。
参照情報
ソフトウェアの更新を説明するために Microsoft が使用する 用語 について説明します。