sys.sp_cdc_add_job (Transact-SQL)
Область применения: SQL Server
Создает задание очистки или записи системы отслеживания информации об изменениях в текущей базе данных.
Соглашения о синтаксисе Transact-SQL
Синтаксис
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' ]
[ ; ]
Аргументы
[ @job_type = ] N'job_type'
Тип добавляемого задания. @job_type является nvarchar(20) и не может бытьNULL
. Допустимые входные данные и capture
cleanup
.
[ @start_job = ] start_job
Флаг, указывающий, следует ли запускать задание сразу после его добавления. @start_job бит с значением по умолчанию1
.
[ @maxtrans ] = max_trans
Максимальное количество транзакций, обрабатываемое в каждом цикле просмотра. @maxtrans имеет значение по умолчанию500
. Указываемое значение должно быть положительным целым числом.
@maxtrans допустимо только для заданий записи.
[ @maxscans ] = max_scans
Максимальное количество циклов просмотра, выполняемых для извлечения всех строк из журнала. @maxscans имеет значение по умолчанию10
.
@max_scan допустимо только для заданий записи.
[ @continuous ] = непрерывный
Указывает, выполняется ли задание записи непрерывно (1
) или выполняется только один раз (0
). @continuous имеет значение по умолчанию1
.
При @continuous задание sys.sp_cdc_scan
1
сканирует журнал и обрабатывает до (@maxtrans * @maxscans
) транзакций. Затем он ожидает количество секунд, указанных в @pollinginterval , прежде чем начать следующую проверку журнала.При @continuous
sp_cdc_scan
0
задание выполняется до @maxscans сканирования журнала, обработки до @maxtrans транзакции во время каждой проверки, а затем завершает работу.
@continuous допустимо только для заданий записи.
[ @pollinginterval ] = polling_interval
Число секунд между циклами просмотра журнала. @pollinginterval имеет значение bigint со значением по умолчанию5
.
@pollinginterval допустимо только для заданий записи, если задано 1
значение @continuous. Если задано, значение должно быть больше или равно 0
24 часам (до 86399 секунд). Если задано 0
значение, между проверками журналов не ожидается.
[ @retention ] = хранение
Число минут, в течение которого строки данных об изменениях необходимо хранить в таблицах изменений. @retention имеет значение по умолчанию 4320
(72 часа). Максимальное значение — 52494800
100 лет. Указываемое значение должно быть положительным целым числом.
@retention допустимо только для заданий очистки.
[ @threshold = ] 'delete_threshold'
Максимальное число записей, подлежащих удалению, которые можно удалить с использованием одной инструкции при очистке. @threshold имеет значение bigint с значением по умолчанию5000
.
Значения кода возврата
0
(успешно) или 1
(сбой).
Результирующий набор
Нет.
Замечания
Если для первой таблицы включена система отслеживания измененных данных, при создании задания очистки используются значения по умолчанию. Если для первой таблицы включена система отслеживания измененных данных и в базе данных не существует публикаций транзакций, при создании задания отслеживания используются значения по умолчанию. Когда существует публикация транзакций, средство чтения журналов транзакций используется для управления механизмом записи, а отдельное задание записи не требуется или запрещено.
Так как задания очистки и отслеживания создаются по умолчанию, данная хранимая процедура используется только в тех случаях, когда задание необходимо повторно создать после выполнения явного удаления.
Имя задания — cdc.<database_name>_cleanup
или cdc.<database_name>_capture
имя <database_name>
текущей базы данных. Если задание с тем же именем уже существует, имя добавляется с точкой (.
), за которой следует уникальный идентификатор, например: cdc.AdventureWorks_capture.A1ACBDED-13FC-428C-8302-10100EF74F52
Чтобы просмотреть текущую конфигурацию задания очистки или записи, используйте sys.sp_cdc_help_jobs. Чтобы изменить конфигурацию задания, используйте sys.sp_cdc_change_job.
Разрешения
Требуется членство в предопределенной роли базы данных db_owner.
Примеры
А. Создание задания записи
В следующем примере создается задание отслеживания. В этом примере предполагается, что существующее задание очистки было явным образом удалено и его необходимо создать повторно. Задание создается с использованием значений по умолчанию.
USE AdventureWorks2022;
GO
EXEC sys.sp_cdc_add_job @job_type = N'capture';
GO
B. Создание задания очистки
В следующем примере создается задание очистки в базе данных AdventureWorks2022. Параметр @start_job имеет 0
значение и @retention имеет значение 5760 минут (96 часов). В этом примере предполагается, что существующее задание очистки было явным образом удалено и его необходимо создать повторно.
USE AdventureWorks2022;
GO
EXEC sys.sp_cdc_add_job
@job_type = N'cleanup',
@start_job = 0,
@retention = 5760;