sys.sp_cdc_add_job (Transact-SQL)
Si applica a: SQL Server
Consente di creare un processo di pulizia dell'acquisizione dei dati delle modifiche o un processo di acquisizione nel database corrente.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
sys.sp_cdc_add_job [ @job_type = ] N'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 = ] N'job_type'
Tipo di processo da aggiungere. @job_type è 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 è bit con un valore predefinito .1
[ @maxtrans ] = max_trans
Numero massimo di transazioni da elaborare in ogni ciclo di analisi. @maxtrans è int con il valore predefinito 500
. Se specificato, il valore deve essere un numero intero positivo.
@maxtrans è 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. @maxscans è int con 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 eseguito una sola volta (0
). @continuous è bit con un valore predefinito .1
Quando @continuous è
1
, il processo sys.sp_cdc_scan analizza il log ed elabora fino a (@maxtrans * @maxscans
). Attende quindi il numero di secondi specificato in @pollinginterval prima di iniziare l'analisi del log successiva.Quando @continuous è
0
, ilsp_cdc_scan
processo viene eseguito fino a @maxscans analisi del log, l'elaborazione fino a @maxtrans transazione durante ogni analisi e quindi viene chiusa.
@continuous è valido solo per i processi di acquisizione.
[ @pollinginterval ] = polling_interval
Numero di secondi tra cicli di analisi del log. @pollinginterval è bigint con il valore predefinito 5
.
@pollinginterval è valido solo per i processi di acquisizione quando @continuous è impostato su 1
. Se specificato, il valore deve essere maggiore o uguale a 0
e minore di 24 ore (fino a 86399 secondi). Se si specifica un valore pari 0
a , non c'è attesa tra le analisi del log.
[ @retention ] = conservazione
Numero di minuti per i quali le righe dei dati delle modifiche devono essere conservate nelle tabelle delle modifiche. @retention è bigint con un valore predefinito di 4320
(72 ore). Il valore massimo è 52494800
(100 anni). Se specificato, il valore deve essere un numero intero positivo.
@retention è valido solo per i processi di pulizia.
[ @threshold = ] 'delete_threshold'
Numero massimo di voci che possono essere eliminate utilizzando un'unica istruzione nel processo di pulizia. @threshold è bigint con il valore predefinito 5000
.
Valori del codice restituito
0
(esito positivo) o 1
(errore).
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. Quando esiste una pubblicazione transazionale, il lettore di log transazionale viene usato per guidare il meccanismo di acquisizione e un processo di acquisizione separato non è obbligatorio o consentito.
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>_capture
, 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 acquisizione, usare sys.sp_cdc_help_jobs. Per modificare la configurazione di un processo, usare sys.sp_cdc_change_job.
Autorizzazioni
Richiede l'adesione al ruolo predefinito del database db_owner.
Esempi
R. Creare 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 AdventureWorks2022;
GO
EXEC sys.sp_cdc_add_job @job_type = N'capture';
GO
B. Creare un processo di pulizia
Nell'esempio seguente viene creato un processo di pulizia nel database AdventureWorks2022. 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 AdventureWorks2022;
GO
EXEC sys.sp_cdc_add_job
@job_type = N'cleanup',
@start_job = 0,
@retention = 5760;