session_id = 0
-- 返回最近会话的平均吞吐量
SELECT command_count/duration AS [Throughput] FROM sys.dm_cdc_log_scan_sessions WHERE session_id = 0
?
?
-- 查看捕获作业或清除作业的信息
-- SELECT * FROM msdb.dbo.sysjobs
SELECT * FROM msdb.dbo.cdc_jobs
EXEC sys.sp_cdc_help_jobs
?
对作业的更改 (参考 sys.sp_cdc_change_job)
?
--对作业的更改
EXEC sys.sp_cdc_change_job
@job_type = 'capture'
,@maxtrans = 1000 --每个扫描循环可以处理的最多事务数
,@maxscans = 10 --为了从日志中提取所有行而要执行的最大扫描循环次数
,@continuous = 1 --连续运行最多处理(max_trans * max_scans) 个事务
,@pollinginterval = 5
EXEC sys.sp_cdc_change_job
@job_type = 'cleanup'
,@retention = 4320 --更改行将在更改表中保留的分钟数
,@threshold = 5000 --清除时可以使用一条语句删除的删除项的最大数量
--更改后需重启作业
EXEC sys.sp_cdc_stop_job @job_type = N'capture';
EXEC sys.sp_cdc_stop_job @job_type = N'capture';
EXEC sys.sp_cdc_start_job @job_type = N'cleanup';
EXEC sys.sp_cdc_start_job @job_type = N'cleanup';
最后一项,禁用(删除)变更数据捕获:
?
?
-- 对表禁用变更数据捕获
USE MyDatabase;
GO
EXEC sys.sp_cdc_disable_table
@source_schema = N'dbo',
@source_name = N'CDC_Test',
@capture_instance = N'dbo_CDC_Test'
GO
-- 对数据库禁用变更数据捕获
USE MyDatabase;
GO
EXECUTE sys.sp_cdc_disable_db;
GO
--执行完成后,相关的表、函数、用户、角色、架构、作业都会完全删除!