sys.sp_cdc_change_job (Transact-SQL)
現在のデータベースに、変更データ キャプチャ機能のクリーンアップ ジョブまたはキャプチャ ジョブの構成を変更します。 ジョブの現在の構成を表示するには、dbo.cdc_jobs テーブルをクエリするか、sp_cdc_help_jobs を使用します。
適用対象: SQL Server (SQL Server 2008 から現在のバージョンまで) |
構文
sys.sp_cdc_change_job [ [ @job_type = ] 'job_type' ]
[ , [ @maxtrans = ] max_trans ]
[ , [ @maxscans = ] max_scans ]
[ , [ @continuous = ] continuous ]
[ , [ @pollinginterval = ] polling_interval ]
[ , [ @retention ] = retention ]
[ @threshold = ] 'delete threshold'
引数
[ @job_type= ] 'job_type'
変更するジョブの種類を指定します。 job_type のデータ型は nvarchar(20) で、既定値は 'capture' です。 有効な入力値は 'capture' と 'cleanup' です。[ @maxtrans ] **=**max_trans
各スキャン サイクルで処理する最大トランザクション数を指定します。 max_trans のデータ型は int で、既定値は NULL です。この値は、このパラメーターに変更がないことを示します。 指定する場合、値は正の整数にする必要があります。max_trans はキャプチャ ジョブでのみ有効です。
[ @maxscans ] **=**max_scans
ログからすべての行を抽出するために実行する最大スキャン サイクル数を指定します。 max_scans のデータ型は int で、既定値は NULL です。この値は、このパラメーターに変更がないことを示します。max_scan はキャプチャ ジョブでのみ有効です。
[ @continuous ] **=**continuous
キャプチャ ジョブを連続的に実行するか (1)、1 回だけ実行するか (0) を指定します。 continuous のデータ型は bit で、既定値は NULL です。この値は、このパラメーターに変更がないことを示します。continuous に 1 を指定した場合、sp_cdc_scan ジョブによってログがスキャンされ、最大 (max_trans * max_scans) のトランザクションが処理されます。 その後、polling_interval に指定された秒数待機してから、次のログ スキャンが開始されます。
continuous に 0 を指定した場合、sp_cdc_scan ジョブは、最大 max_scans 回のログ スキャンを実行し、各スキャンあたり最大 max_trans 件のトランザクションを処理した後に終了します。
@continuous を 1 から 0 に変更した場合、@pollinginterval は自動的に 0 に設定されます。 @pollinginterval に指定された 0 以外の値は無視されます。
@continuous を省略するか、明示的に NULL を設定し、かつ @pollinginterval を明示的に 0 より大きな値に設定した場合、@continuous は自動的に 1 に設定されます。
continuous はキャプチャ ジョブでのみ有効です。
[ @pollinginterval ] **=**polling_interval
ログ スキャン サイクルの間隔を秒数で指定します。 polling_interval のデータ型は bigint で、既定値は NULL です。この値は、このパラメーターに変更がないことを示します。continuous を 1 に設定した場合、polling_interval はキャプチャ ジョブでのみ有効です。
[ @retention ] **=**retention
変更行が変更テーブルに保持される分数を指定します。 retention のデータ型は bigint で、既定値は NULL です。この値は、このパラメーターに変更がないことを示します。 最大値は 52494800 (100 年) です。 指定する場合、値は正の整数にする必要があります。retention はクリーンアップ ジョブでのみ有効です。
[ @threshold= ] 'delete threshold'
クリーンアップ時に 1 つのステートメントを使用して削除できる最大削除エントリ数を指定します。 delete threshold のデータ型は bigint で、既定値は NULL です。この値は、このパラメーターに変更がないことを示します。 delete threshold はクリーンアップ ジョブでのみ有効です。
リターン コードの値
0 (成功) または 1 (失敗)
結果セット
なし
説明
パラメーターを省略した場合、dbo.cdc_jobs テーブル内の関連する値は更新されません。 明示的に NULL が設定されたパラメーターは、省略されたものとして扱われます。
指定したパラメーターが、そのジョブの種類では無効であった場合、ステートメントでエラーが発生します。
ジョブに対する変更を有効にするには、sp_cdc_stop_job でジョブを停止した後、sp_cdc_start_job で再開する必要があります。
権限
db_owner 固定データベース ロールのメンバーシップが必要です。
使用例
A. キャプチャ ジョブを変更する
次の例では、AdventureWorks2012 データベース内のキャプチャ ジョブを対象に、@job_type、@maxscans、@maxtrans の各パラメーターを更新します。 キャプチャ ジョブで有効な他のパラメーター (@continuous および @pollinginterval) については、指定が省略されているため値は変更されません。
USE AdventureWorks2012;
GO
EXECUTE sys.sp_cdc_change_job
@job_type = N'capture',
@maxscans = 1000,
@maxtrans = 15;
GO
B. クリーンアップ ジョブを変更する
次の例では、AdventureWorks2012 データベースのクリーンアップ ジョブを更新します。 @threshold を除く、このジョブの種類に対して有効なすべてのパラメーターが指定されています。 @threshold の値は変更されません。
USE AdventureWorks2012;
GO
EXECUTE sys.sp_cdc_change_job
@job_type = N'cleanup',
@retention = 2880;
GO