次の方法で共有


サーバー構成: ADR クリーナー再試行タイムアウト (分)

適用対象: SQL Server

SQL Server 2019 (15.x) 以降、高速データベース復旧 (ADR) にはこの構成設定が必要です。 クリーナーは、定期的に起動し、不要なページ バージョンを消去する非同期プロセスです。

場合によっては、オブジェクト レベルのロックを取得するときに、スイープ中のユーザー ワークロードとの競合が原因でクリーナーの問題が発生することがあります。 クリーナーは、このようなページを個別のリストで追跡します。 ADR cleaner retry timeout (min) は、スイープを破棄する前に、クリーナーがオブジェクト ロックの取得とページのクリーンアップを排他的に再試行する時間を制御します。 中止されたトランザクションのマップで中止されたトランザクションの増加を維持するには、スイープが 100% 成功して完了することが不可欠です。 指定されたタイムアウトで個別のリストをクリーンアップできない場合、現在のスイープは破棄され、次のスイープが開始されます。

バージョン 既定値
SQL Server 2019 (15.x) 120
SQL Server 2022 (16.x) 以降のバージョン 15

解説

クリーナーは SQL Server 2019 (15.x) のシングル スレッドであるため、1 つの SQL Server インスタンスは一度に 1 つのデータベースで作業できます。 インスタンスに ADR が有効になったユーザー データベースが複数ある場合は、タイムアウトを大きな値に増やさないでください。 そうすると、別のデータベースで再試行が行われている間に、あるデータベースのクリーンアップが遅れる可能性があります。

既知の問題

SQL Server 2019 (15.x) CU 12 以前のバージョンの場合、この値は 0 に設定されることがあります。 この記事の例を使用して、設計された既定値である 120 に値を手動でリセットすることをお勧めします。

クリーナー再試行タイムアウトを既定値に設定する例を次に示します。

EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
EXEC sp_configure 'ADR cleaner retry timeout', 120;
RECONFIGURE;
GO

クリーナー再試行タイムアウトを既定値に設定する例を次に示します。

EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
EXEC sp_configure 'ADR cleaner retry timeout', 15;
RECONFIGURE;
GO