概要
この更新プログラムには、Windows 上の Microsoft SQL Server 2016 および 2017 の変更追跡クリーンアップ機能に対する次の機能強化が含まれています。
- ハード チェックポイントでの syscommittab テーブルのクリーンアップは回避されます。これは、チェックポイント操作のパフォーマンスに影響を与える可能性があるためです。 代わりに、変更追跡の自動クリーンアップが完了するとすぐに syscommittab テーブルがクリーンアップされる場合があります。 変更追跡の自動クリーンアップが完了すると、透かしバージョン (強化されたクリーンアップ バージョン) が更新されます。 この強化されたクリーンアップ バージョンは、 syscommittab クリーンアップで使用され、削除するレコードを識別します。
- 現在、変更追跡自動クリーンアップ プロセスでは、サイド テーブルから行を削除またはクリーニングしているときにクリーンアップ スレッドでブロックが発生するたびに、自動クリーンアップが停止してプロセスから終了します。 この更新では、問題のあるテーブルはプロセスを終了するのではなく、再試行のマークが付けられ、リスト内の残りのテーブルが続行されます。 スレッドが最終的なテーブルのクリーンアップを終了すると、ハードル化されたクリーンアップ バージョンを更新する直前に、再試行対象としてマークされたテーブルがあるかどうかチェックするためにプロセスが再試行されます。
- また、既存の change_tracking_cleanup XEvent に以下のサブイベントが追加されます。
a) ErrorInTableCleanup – これは、サイド テーブルのいずれかの期限切れのエントリをクリーンアップするときに、変更追跡クリーンアップで問題が発生するかどうかを特定するのに役立ちます。
b) RowsCleanedupInLoop – これは、テーブル レベルで変更追跡の自動クリーンアップの進行状況を追跡するのに役立ちます。
c) RetryCleanup – これは、変更追跡自動クリーンアップ スレッドによって行われた再試行を特定するのに役立ちます。
解決策
この更新プログラムは、次の SQL Server の累積的な更新プログラムおよび Service Pack に含まれています。
SQL Server 2017 の累積的な更新プログラム 2
SQL Server の累積的な更新プログラムについて:
SQL Server 用の新しい累積的な更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正プログラムが含まれています。 SQL Server の最新の累積的な更新プログラムを確認してください。
SQL Server 2017 の最新の累積的な更新プログラム
SQL Server 2016 の Service Pack の情報
Service Pack 2 (SQL Server 2016)
SQL Server の Service Pack について:
Service Pack は累積的であり、 最新の Service Pack には新しい修正プログラムと共に、それ以前の Service Pack に含まれていたすべての修正プログラムが含まれています。 マイクロソフトでは、最新の Service Pack と、その Service Pack 用の最新の累積的な更新プログラムを適用することをお勧めします。 最新の Service Pack をインストールする前に、以前の Service Pack をインストールする必要はありません。 最新の Service Pack と最新の累積的な更新プログラムの詳細については、次の資料の表 1 を参照してください。
SQL Server とそのコンポーネントのバージョン、エディション、および更新プログラムのレベルを確認する方法
参考資料
マイクロソフトでソフトウェア更新プログラムの説明に使用する用語集を参照してください。