在我们的一个客户上,我们已经Microsoft SQL Server 2014 - 12.0.4100.1 (X64)
安装了。这是一个繁重的事务模式(尤其是在夜间),我们有一个定期REINDEX
维护工作,每天凌晨 4 点运行。
我们注意到,今晚重新索引作业在特定表上卡住了大约 45 分钟,alter index
因为它被另一个事务(UPDATE
用户发出的语句,我们系统的一个非常常见的事务)锁定。
由于我们已经收到用户的投诉,负责夜间检查的人及时终止了交易(包括重新索引);当他杀死它时,当前的ALTER INDEX
语句被阻止了 45 分钟,但整个REINDEX
工作在那一刻花了将近 4 个小时(他在上午 7:51 杀死了它)。
有没有办法避免REINDEX
工作被其他事务阻止?
编辑:我们注意到的碎片级别(< 30%)表明我们可能会选择 aREORGANIZE
而不是 aREINDEX
从而消除其他事务被 reorganize 锁定的机会,但 reorganize 本身仍然可能被阻止。