
缺点:
1)CDC 激活会显著增加日志文件的读操作。
2)CDC 激活后更新跟踪表会产生额外的写入,并消耗存储空间。
3)CDC 激活后,原数据表的聚簇索引尺寸会影响到 CDC 产生的 IO 数据量,而原始数据表上
的非聚簇索引则不会。
4)CDC 激活后,被选定进行更新跟踪的列键值属性同样会影响到 CDC 产生的 IO 数据量和存
储空间。
5)如果某部分 日 志 ,CDC 的进程还没有读取,那么在截断日志时就会忽略这个部分(截断日
志或收缩日志都会对 CDC 有一定影响,需要考虑日志维护策略)
官方建议:
微软建议 CDC 结合快照隔离级别使用,可以避免读取变更数据与变更数据写入时的
读写阻塞。需要注意:快照隔离级别会有额外的开销,特别是 Te m pdb( 所有的数据更改
都会被版本化存到 tempdb)。启 用 CDC 之后会新增一个叫 CDC 的 Schema 和一系列
的系统表、SP 和 View。官方建议不要直接查询系统表而是使用对应的系统 SP/FN 来
获取 CDC 数据。
1 ) capture 作业是用于扫描日志文件,把变更记录写到变更表中。调用
sp_MScdc_capture_job 来实现,可以根据当前库的实际事务吞吐量来设置扫描参数
和扫描间隔,使得在性能开销和跟踪需求间达到合理平衡。
2)cleanup 作业是清理变更变表中的数据,默认三天的数据,确 定 合 适 的 间隔是非常重
要的。
评论