Nota
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare ad accedere o a cambiare directory.
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare a cambiare directory.
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 ] = continuo
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 è , il
1analizza 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_scanprocesso 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
EXECUTE sys.sp_cdc_add_job @job_type = N'capture';
GO
B. Creare un processo di pulizia
Il seguente esempio crea un lavoro di pulizia nel database AdventureWorks2025. 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
EXECUTE sys.sp_cdc_add_job
@job_type = N'cleanup',
@start_job = 0,
@retention = 5760;