sys.sp_persistent_version_クリーンup (Transact-SQL)
適用対象: SQL Server 2019 (15.x) Azure SQL DatabaseAzure SQL Managed Instance
高速データベース復旧 (ADR) の重要な要素である永続バージョン ストア (PVS) クリーンup プロセスを手動で開始します。 このクリーンは、中止されたトランザクションから PVS 内のコミットされていないデータをロールバックします。
通常、PVS クリーンup プロセスを手動sys.sp_persistent_version_cleanup
で開始する必要はありません。 ただし、一部のシナリオでは、ビジー状態の OLTP アクティビティ後の既知の休止/回復期間に、PVS クリーンup プロセスを手動で開始することが必要な場合があります。
Azure SQL の ADR の詳細については、「Azure SQL での高速データベース復旧」を参照してください。
構文
sp_persistent_version_cleanup
[ [ @dbname = ] N'dbname' ]
[ , [ @scanallpages = ] scanallpages ]
[ , [ @clean_option = ] clean_option ]
[ ; ]
引数
[ @dbname = ] N'dbname'
省略可能。 クリーンするデータベースの名前。 指定しない場合は、現在のデータベース コンテキストを使用します。 @dbnameは sysname で、既定値は NULL
.
[ @scanallpages = ] scanallpages
省略可能。 @scanallpagesはビットで、既定値は 0
. このオプションを設定1
すると、バージョン管理されていない場合でも、すべてのデータベース ページのクリーンが強制的にアップします。
[ @clean_option = ] クリーン_option
省略可能。 使用可能なオプションは、行外 PVS ページを再利用するかどうかを決定します。 @クリーン_option は int で、既定値は 0
. このリファレンスは一般的には必要ありません。既定値 0
をお勧めします。
Value | 内容 |
---|---|
0 | 既定値、オプションが指定されていない |
1 | 個々の PVS ページの内容をチェックしない行外バージョン ストア |
2 | 各 PVS ページがアクセスされた行以外のバージョン ストア |
3 | 行内バージョン ストアのみ |
4 | 内部使用のみ |
リターン コードの値
0
(成功) または 1
(失敗)。
結果セット
なし。
アクセス許可
実行するには ALTER DATABA Standard Edition アクセス許可が必要です。
解説
ストアド プロシージャはsys.sp_persistent_version_cleanup
同期的です。つまり、すべてのバージョン情報が現在の PVS からクリーンされるまで完了しません。
SQL Server 2019 (15.x) では、PVS クリーンup プロセスは一度に 1 つのデータベースに対してのみ実行されます。 Azure SQL Database と Azure SQL Managed Instance では、SQL Server 2022 (16.x) 以降では、PVS クリーンup プロセスは、同じインスタンス内の複数のデータベースに対して並列で実行できます。
PVS クリーンup プロセスが既に目的のデータベースに対して実行されている場合、このストアド プロシージャはブロックされ、完了するまで待機してから、別の PVS クリーンアップ プロセスを開始します。 ADR が有効になっているデータベースで実行時間の長いアクティブなトランザクションでも、PVS のクリーンをブロックできます。 バージョン クリーンer タスクを監視するには、次のサンプル クエリを使用してそのプロセスを探します。
SELECT *
FROM sys.dm_exec_requests
WHERE command LIKE '%PERSISTED_VERSION_CLEANER%';
制限事項
ADR が有効になっているデータベース、または永続化されたバージョン ストア (PVS) にバージョンが残っているデータベースには、データベース ミラーリングを設定できません。 ADR が無効になっている場合は、PVS 内の以前のバージョンを引き続きクリーンするために実行sys.sp_persistent_version_cleanup
します。
例
ワークロード間またはメインテナント 期間に PVS クリーンup プロセスを手動でアクティブにするには、次のサンプル スクリプトを使用します。
EXEC sys.sp_persistent_version_cleanup [database_name];
次に例を示します。
EXEC sys.sp_persistent_version_cleanup [WideWorldImporters];
または、現在のデータベース コンテキストを想定する場合:
USE [WideWorldImporters];
GO
EXEC sys.sp_persistent_version_cleanup;
関連するコンテンツ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示