首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >CDC LSN:查询返回不同的最小值

CDC LSN:查询返回不同的最小值
EN

Stack Overflow用户
提问于 2018-02-19 19:02:44
回答 1查看 106关注 0票数 0

我在一个表上启用了CDC,并且我正在尝试获取该表在ETL作业中使用的最小LSN。但是,当我运行这个查询时

代码语言:javascript
运行
复制
select sys.fn_cdc_get_min_lsn('dbo_Table')

我得到了与此查询不同的结果

代码语言:javascript
运行
复制
select min(__$start_lsn) from cdc.dbo_Table_CT

这些查询不应该返回相同的值吗?如果他们没有,为什么不呢?以及如何让它们恢复同步?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-20 05:42:32

第一个查询:

代码语言:javascript
运行
复制
select sys.fn_cdc_get_min_lsn('dbo_Table')

调用一个系统函数,该函数为捕获实例返回尽可能低的lsn。该值在cleanup函数运行时设置。它被记录在cdc.change_tables中,并在其中进行查询。

第二个查询:

代码语言:javascript
运行
复制
select min(__$start_lsn) from cdc.dbo_Table_CT

查看实际捕获实例并返回该实例的最低实际lsn。该值是在cleanup函数运行后记录对实例的第一次实际更改时设置的。它被记录在cdc.dbo_Table_CT中,并在其中进行查询。

从统计学上讲,他们不太可能打成平手。对于ETL作业,使用对系统表的调用可能会更快,并且更准确地反映了开始累积当前更改记录集的时间。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48864713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档