SET SYSTEM_VERSIONING = ON时超时与大表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SET SYSTEM_VERSIONING = ON时超时与大表相关的知识,希望对你有一定的参考价值。

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

重新开启版本控制会带来问题。它需要比预期更长的时间,导致超时。似乎与时态表中的记录数量直接相关。重新打开版本需要30多秒才能完成,这个表只会增长。除了增加超时之外,是否有解决此问题的方法?

答案

Per the docs

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

只有在您确信“后”状态绝对有效时才应使用此选项。它执行的检查的详细信息are here

以上是关于SET SYSTEM_VERSIONING = ON时超时与大表的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本怎么设置语句出错自动退出?(set -eset -o errexit)使用未初始化的变量自动退出?(set -uset -o nounset)(退出脚本)

Set.has() 方法 O(1) 和 Array.indexOf O(n) 吗? [复制]

linux中的set -e 与set -o pipefail

解释bash脚本中set -e与set -o pipefail的作用

在 O(log(n)) 时间内从 std::set 中随机选择一个元素

java.util.Set.contains(Object o) 的奇怪行为