【问题标题】:Using sp_flush_CT_internal_table_on_demand did not flush the records使用 sp_flush_CT_internal_table_on_demand 没有刷新记录
【发布时间】:2020-07-18 03:28:11
【问题描述】:

我最近刚刚安装了 SQL Server 2012 sp4 来修复和添加sp_flush_CT_internal_table_on_demand。目前,我的保留期为 5 分钟的自动清理没有清理我的边桌和 sys_committable 表。我等了几个小时还是不行。

即使我手动运行存储过程sp_flush_CT_internal_table_on_demandsys.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

【问题讨论】:

  • 我假设您是在 MSDN 论坛上提出问题的同一用户。如果是这样,那么我给你写了很长的解释和一些选项。如果您不是同一用户,那么让我们从提供更多信息开始。请从带有事件“change_tracking_cleanup”的扩展事件会话中收集返回信息(在您执行 sp_flush_commit_table_on_demand 时)。如果 sp_flush_commit_table_on_demand 的执行成功与否,这应该提供更多信息,如果没有,那么为什么不成功。 不幸的是,在这个糟糕的界面中,我不能写比第一点更多的内容......

标签: sql sql-server sql-server-2012


【解决方案1】:

我今天遇到了同样的问题。本来我以为一定是默认的change_retention 2天碍事了。但是,即使设置为 1 分钟,存储函数仍然没有从内部更改跟踪表中删除任何行。

我不确定我是否对此讨论做出了贡献或进一步混淆了它。但是,如果遇到类似问题或有解决方案的人,想把它放在那里......

【讨论】:

    【解决方案2】:

    对我来说同样的问题。

    解决方案:在手动过程删除行之前,我必须在数据库上发布一个检查点,批量删除 5000 行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-17
      • 2019-01-14
      • 1970-01-01
      • 1970-01-01
      • 2013-06-21
      • 2022-08-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多