首页 > 解决方案 > SET SYSTEM_VERSIONING = ON 期间超时,大表

问题描述

我在一个有 1800 万条记录的大表上使用时间功能。为了符合 GDPR,我实施了一种关闭版本控制的方法,删除与想要保护其隐私的客户相关的记录并重新打开版本控制。如果历史表中允许删除记录,这显然是没有必要的。我可以看到他们为什么不允许它,尽管我不明白为什么没有实现允许它的选项。

重新打开版本控制会带来问题。它花费的时间比预期的要长,导致超时。似乎与时态表中的记录数量直接相关。重新打开版本控制需要 30 多秒,并且该表预计只会增长。除了增加超时之外,有没有解决这个问题的方法?

标签: sql-servertsql

解决方案


根据文档

当启用 SYSTEM_VERSIONING 时指定现有历史表时,将在当前表和历史表中执行数据一致性检查。如果您指定 DATA_CONSISTENCY_CHECK=OFF 作为附加参数,则可以跳过它

仅当您确信“之后”状态绝对有效时才应使用此选项。它执行的检查的详细信息在这里


推荐阅读