作者:超人 | 来源:互联网 | 2023-10-10 08:23
该问题的答案将是“是”和“否”。
为表启用更改数据捕获后,将创建关联的捕获实例以支持在源表中分发更改数据。捕获实例由一个变更表和最多两个查询功能组成。
未跟踪的表似乎不参与跟踪数据。
用于更改数据捕获的更改数据的源是SQL
Server事务日志。在将插入,更新和删除应用于跟踪的源表时,描述这些更改的条目将添加到日志中。日志用作更改数据捕获捕获过程的输入。这将读取日志,并将有关更改的信息添加到跟踪表及其关联的更改表中。
由于更改的来源来自事务日志,因此更改的传播需要捕获实例读取和解释事务日志 (免责声明:我对事物的解释) 。仅启用CDC会对整个数据库的性能产生影响。
贮存:
- 在计划更改数据捕获体系结构时,请考虑日志大小和日志卷I / O操作的显着增加。
- 考虑在sys.sp_cdc_enable_table中指定一个文件组。
*
在执行sys.sp_cdc_enble_db之前,请考虑更改数据库的默认文件组,以使更改数据捕获元数据(尤其是cdc.lsn_time_mappings)位于与PRIMARY不同的文件组上。
工作负载行为:
- 尝试避免插入后需要立即更新行的情况。
- 尝试避免使用更改数据捕获来捕获对具有频繁的大更新事务的表的更改。
更改数据捕获参数:
- 始终将更改数据捕获所捕获的列的列表减少为仅真正需要跟踪的列。
- 如果不需要网络更改支持,请将@设置为0。
- 用于查看更改数据捕获是否可以跟上您的工作量。
- 如果更改数据捕获无法满足您的工作量,请修改扫描作业参数并重新启动扫描作业。
如果您的服务器当前没有任何问题可以跟上它的负载,我非常怀疑您是否会注意到为不频繁更改的表启用CDC的任何性能问题。