メイン コンテンツへスキップ
サポート
Microsoft アカウントでサインイン
サインインまたはアカウントを作成してください。
こんにちは、
別のアカウントを選択してください。
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

現象

2016 年と 2017 年SQL ServerにAlways On可用性グループ (AG) があることを前提としています。 セカンダリ レプリカで読み取りクエリを処理すると、DIRTY_PAGE_TABLE_LOCKが頻繁に待機するため、プライマリ レプリカよりもはるかにパフォーマンスが低下する可能性があります。

原因

この問題は、読み取りクエリと再実行スレッドの間の競合と、テーブルがロックされているために発生します。

解決方法

この修正プログラムは、SQL Serverの次の更新プログラムに含まれています。

SQL Server 2017 の累積的な更新プログラム 8 

SQL Server 2016 Service Pack 2 の累積的な更新プログラム 1

SQL Server 2016 Service Pack 1 の累積的な更新プログラム 9

ビルドSQL Serverについて

SQL Serverの各新しいビルドには、前のビルドにあったすべての修正プログラムとセキュリティ修正プログラムが含まれています。 SQL Serverのバージョンの最新のビルドをインストールすることをお勧めします。

SQL Server 2017 の最新の累積的な更新プログラム

SQL Server 2016 の最新ビルド

回避策 

この問題を回避するには、トレース フラグ 3459 を有効にすることで、並列再実行スレッドの代わりに 1 つの再実行スレッドを使用できます。

詳細情報

読み取り専用クエリが読み取り可能なセカンダリ レプリカで実行されている場合、クエリ スレッドは保留中のログ再実行操作の適用を試み、 DIRTY_PAGE_TABLE_LOCK 待機を使用してやり直しワーカー スレッドと共同作業する必要があります。これは、頻繁に生成され、再実行ワークロードとクエリパフォーマンスの両方が低下する可能性があります。 DIRTY_PAGE_TABLE_LOCK待機に関連するパフォーマンスの問題は、この記事で説明SQL Server 2016 SP および SQL Server 2017 の累積的な更新プログラム リリースで解決されます。

詳細については、可用性グループのセカンダリ レプリカの再実行モデルとパフォーマンスに関する次のブログを参照してください。

状態

マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。

関連情報

Microsoft がソフトウェア更新プログラムの説明に使用する 用語 について説明します。

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?
[送信] を押すと、Microsoft の製品とサービスの改善にフィードバックが使用されます。 IT 管理者はこのデータを収集できます。 プライバシーに関する声明。

フィードバックをいただき、ありがとうございます。

×