[英]Change tracking SQL Server
sys.change_tacking_tables中启用了特定更改跟踪的表的begin_version和min_valid_version列之间的主要区别是什么?
我在数据库中为每个表(1000多个表)的两个列看到相同的值。
我也尝试过截断和插入操作。 但是,看不到任何变化。
什么时候可以看到两列的不同值,请举个例子。
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.