sys.sp_cdc_add_job (Transact-SQL)

Si applica a: sìSQL Server (tutte le versioni supportate)

Consente di creare un processo di pulizia dell'acquisizione dei dati delle modifiche o un processo di acquisizione nel database corrente.

Icona di collegamento a un argomento Convenzioni della sintassi Transact-SQL

Sintassi

  
sys.sp_cdc_add_job [ @job_type = ] 'job_type'  
    [ , [ @start_job = ] start_job ]   
    [ , [ @maxtrans = ] max_trans ]   
    [ , [ @maxscans = ] max_scans ]   
    [ , [ @continuous = ] continuous ]   
    [ , [ @pollinginterval = ] polling_interval ]   
    [ , [ @retention ] = retention ]   
    [ , [ @threshold ] = 'delete_threshold' ]  

Argomenti

[ @job_type = ] 'job\_type' Tipo di processo da aggiungere. job_type è di tipo nvarchar (20) e non può essere null. Gli input validi sono ' Capture ' e ' Cleanup '.

[ @start_job = ] start_job Flag che indica se il processo deve essere avviato immediatamente dopo l'aggiunta. START_JOB è di bit e il valore predefinito è 1.

[ @maxtrans ] = max_trans Numero massimo di transazioni da elaborare in ogni ciclo di analisi. max_trans è di tipo int e il valore predefinito è 500. Se specificato, il valore deve essere un numero intero positivo.

max_trans è valido solo per i processi di acquisizione.

[ @maxscans ] = max\_scans_ Numero massimo di cicli di analisi da eseguire per estrarre tutte le righe dal log. max_scans è di tipo int e il valore predefinito è 10.

max_scan è valido solo per i processi di acquisizione.

[ @continuous ] = continuous_ Indica se il processo di acquisizione deve essere eseguito in modo continuo (1) o solo una volta (0). Continuous è di bit e il valore predefinito è 1.

Quando Continuous = 1, il processo di sp_cdc_scan analizza il log ed elabora fino a (max_trans * max_scans) transazioni. Attende quindi il numero di secondi specificato in polling_interval prima di iniziare la successiva analisi del log.

Quando Continuous = 0, il processo di sp_cdc_scan viene eseguito fino a max_scans le analisi del log, elaborando fino a max_trans transazione durante ogni analisi e quindi esce.

Continuous è valido solo per i processi di acquisizione.

[ @pollinginterval ] = polling\_interval_ Numero di secondi tra i cicli di analisi del log. polling_interval è di tipo bigint e il valore predefinito è 5.

polling_interval è valido solo per i processi di acquisizione quando Continuous è impostato su 1. Se specificato, il valore deve essere maggiore o uguale a 0 e inferiore a 24 ore (max: 86399 secondi). Se viene specificato il valore 0, non esiste alcun intervallo di attesa tra le analisi del log.

[ @retention ] = retention_ Numero di minuti per i quali le righe dei dati delle modifiche devono essere conservate nelle tabelle delle modifiche. la conservazione è di tipo bigint e il valore predefinito è 4320 (72 ore). Il valore massimo è 52494800 (100 anni). Se specificato, il valore deve essere un numero intero positivo.

la conservazione è valida solo per i processi di pulizia.

[ @threshold = ] 'delete\_threshold' Numero massimo di voci Delete che possono essere eliminate utilizzando una singola istruzione durante la pulizia. delete_threshold è di tipo bigint e il valore predefinito è 5000.

Valori del codice restituito

0 (esito positivo) o 1 (esito negativo)

Set di risultati

nessuno

Osservazioni

Un processo di pulizia viene creato utilizzando i valori predefiniti quando la prima tabella nel database è abilitata per Change Data Capture. Un processo di acquisizione viene creato utilizzando i valori predefiniti quando la prima tabella nel database è abilitata per Change Data Capture e per il database non esistono pubblicazioni transazionali. Se esiste una pubblicazione transazionale, per attivare il meccanismo di acquisizione viene utilizzato l'agente di lettura del log delle transazioni. Non è quindi necessario né consentito un processo di acquisizione separato.

Poiché i processi di pulizia e di acquisizione vengono creati per impostazione predefinita, questa stored procedure è necessaria solo quando un processo è stato eliminato in modo esplicito e deve essere ricreato.

Il nome del processo è CDC. <database_name> _ Cleanup o CDC. <database_name> _ acquisizione, dove <database_name> è il nome del database corrente. Se esiste già un processo con lo stesso nome, il nome viene aggiunto con un punto (.) seguito da un identificatore univoco, ad esempio: CDC.AdventureWorks_capture. A1ACBDED-13FC-428C-8302-10100EF74F52.

Per visualizzare la configurazione corrente di un processo di pulizia o di acquisizione, utilizzare sp_cdc_help_jobs. Per modificare la configurazione di un processo, utilizzare sp_cdc_change_job.

Autorizzazioni

È richiesta l'appartenenza al ruolo predefinito del database db_owner .

Esempi

R. Creazione di un processo di acquisizione

Nell'esempio seguente viene creato un processo di acquisizione. Questo esempio presuppone che il processo di pulizia esistente sia stato eliminato in modo esplicito e debba essere ricreato. Il processo viene creato utilizzando i valori predefiniti.

USE AdventureWorks2012;  
GO  
EXEC sys.sp_cdc_add_job @job_type = N'capture';  
GO  

B. Creazione di un processo di pulizia

Nell'esempio seguente viene creato un processo di pulizia nel database AdventureWorks2012. Il parametro @start_job è impostato su 0 e @retention è impostato su 5760 minuti (96 ore). Questo esempio presuppone che il processo di pulizia esistente sia stato eliminato in modo esplicito e debba essere ricreato.

USE AdventureWorks2012;  
GO  
EXEC sys.sp_cdc_add_job  
     @job_type = N'cleanup'  
    ,@start_job = 0  
    ,@retention = 5760;  

Vedere anche

dbo.cdc_jobs ()Transact-SQL
sys.sp_cdc_enable_table ()Transact-SQL
Informazioni su Change Data Capture (SQL Server)