다음을 통해 공유


sys.sp_cdc_change_job(Transact-SQL)

현재 데이터베이스의 변경 데이터 캡처 정리 또는 캡처 작업의 구성을 수정합니다. 작업의 현재 구성을 보려면 dbo.cdc_jobs 테이블을 쿼리하거나 sp_cdc_help_jobs를 사용하십시오.

항목 링크 아이콘Transact-SQL 구문 표기 규칙

구문

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)할지, 아니면 한 번만 실행(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'
    정리 시 단일 문을 사용하여 삭제할 수 있는 삭제 항목의 최대 수입니다. delete threshold는 bigint이며 기본값은 이 매개 변수에 대한 변경 내용이 없음을 나타내는 NULL입니다. delete threshold는 정리 작업에만 사용할 수 있습니다.

반환 코드 값

0(성공) 또는 1(실패)

결과 집합

없음

주의

매개 변수가 생략된 경우 dbo.cdc_jobs 테이블의 관련 값이 업데이트되지 않습니다. 명시적으로 NULL로 설정된 매개 변수는 매개 변수가 생략된 것으로 처리됩니다.

작업 유형에 잘못된 매개 변수를 지정할 경우 문이 실행되지 않습니다.

작업에 대한 변경 사항은 sp_cdc_stop_job을 사용하여 해당 작업을 중지하고 sp_cdc_start_job을 사용하여 다시 시작해야 적용됩니다.

사용 권한

db_owner 고정 데이터베이스 역할의 멤버 자격이 필요합니다.

1. 캡처 작업 변경

다음 예에서는 AdventureWorks2008R2 데이터베이스에 있는 캡처 작업의 @job_type, @maxscans@maxtrans 매개 변수를 업데이트합니다. 캡처 작업에 대한 다른 유효한 매개 변수인 @continuous와 @pollinginterval은 생략되며 해당 값은 수정되지 않습니다.

USE AdventureWorks2008R2;
GO
EXECUTE sys.sp_cdc_change_job 
    @job_type = N'capture',
    @maxscans = 1000,
    @maxtrans = 15;
GO

2. 정리 작업 변경

다음 예에서는 AdventureWorks2008R2 데이터베이스에서 정리 작업을 업데이트합니다. @threshold를 제외하고 이 작업 유형에 대한 모든 유효한 매개 변수가 지정됩니다. @threshold 값은 수정되지 않습니다.

USE AdventureWorks2008R2;
GO
EXECUTE sys.sp_cdc_change_job 
    @job_type = N'cleanup',
    @retention = 2880;
GO