标签: sql-server sql-server-2016
我正在尝试在具有数百万行的现有表上实现时态表。将表更改为ADD PERIOD FOR SYSTEM_TIME时,它似乎锁定了表。我的理论是要进行检查,以确保在任何情况下,周期开始都不晚于周期结束(从逻辑上讲,是对该结果的检查约束)。我最初的想法是为此条件添加一个过滤索引,但是那里不支持在列之间进行比较。我能够在周期开始和结束时间使用未过滤的索引来使alter table更快地运行,但是在生产中仍然很可能是“不可行”。
ADD PERIOD FOR SYSTEM_TIME
在不锁定表的情况下执行更改表是否有技巧?