我最近刚刚安装了SQL Server 2012 sp4来修复和添加sp_flush_CT_internal_table_on_demand
。目前,我的保留期为5分钟的自动清理并没有清理我的边桌和sys_committable
桌。我已经等了几个小时了,它仍然不起作用。
即使我手动运行存储过程sp_flush_CT_internal_table_on_demand
和sys.sp_flush_commit_table_on_demand
,它仍然没有刷新记录。
你知道如何刷新记录吗?
exec sys.sp_flush_CT_internal_table_on_demand 'CT_Table'
exec sys.sp_flush_commit_table_on_demand 1000
sys.sp_flush_CT_internal_table_on_demand
:的结果
Cleanup Watermark = 247171
Internal Change Tracking table name : change_tracking_168413161
Total rows deleted: 0.
Completion time: 2020-07-17T19:53:16.8926321-07:00
sys.sp_flush_CT_internal_table_on_demand
:的结果
(0 rows affected)
The Change Tracking manual cleanup procedure for database CEI has been executed
Completion time: 2020-07-17T19:59:56.2205997-07:00
我今天遇到了同样的问题。最初我认为这一定是默认的change_retension 2天的方式。但是,即使设置为1分钟,存储的函数仍然没有从内部更改跟踪表中删除任何行。
我不确定我是否对这次讨论做出了贡献,或者进一步混淆了它。但无论谁遇到类似的问题或有解决方案,思想都会把它放在那里。。。
我也有同样的问题。
解决方案:我必须在数据库上发布一个检查点,然后手动过程才能批量删除5000行。