繁体   English   中英

变更追踪SQL Server

[英]Change tracking SQL Server

sys.change_tacking_tables中启用了特定更改跟踪的表的begin_version和min_valid_version列之间的主要区别是什么?

我在数据库中为每个表(1000多个表)的两个列看到相同的值。

我也尝试过截断和插入操作。 但是,看不到任何变化。

什么时候可以看到两列的不同值,请举个例子。

https://docs.microsoft.com/zh-cn/sql/relational-databases/system-catalog-views/change-tracking-catalog-views-sys-change-tracking-tables?view=sql-server-2017

begin_version-开始对表进行更改跟踪时的数据库版本。 此版本通常指示何时启用更改跟踪,但是如果表被截断,则将重置此值。

在数据库级别启用更改跟踪时,此时的数据库版本将被视为1。在此数据库上提交的每个事务都将按顺序增加版本。 因此,与每个表相对应的begin_version基本上是在特定表上启用change_tracking时数据库的版本。

min_valid_version-该表可用的变更跟踪信息的最低有效版本。

根据为更改跟踪自动清除配置的保留期限,每次自动清除线程唤醒时,min_valid_version都会更新。 更改跟踪自动清除线程每30分钟在后台唤醒一次,并为所有启用了更改跟踪的数据库更新无效的清除版本。

例如,如果您的保留期是默认的2天,则此线程每次唤醒时,都会从2天前提交的事务中确定数据库的最大版本。 您可以查询sys.dm_tran_commit_table来查找有关此信息。 commit_ts是我在以上几行中刚刚谈到的版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM