重组索引导致死锁

xhr*_*489 1 sql-server deadlock columnstore index-maintenance

我在 SQL Server 2016 中运行alter index reorganize一些列存储索引并收到死锁消息。

永远是reorganize受害者吗?因为我不想导致其他工作失败,并且我正在考虑添加一个set deadlock_priority. 或者这是内置的alter index声明?

Dav*_*oft 5

没有记录表明它具有特定的死锁优先级,但它确实会更改数据。因此,您应该显式设置死锁优先级,也许还可以设置重试循环,以强制执行该行为并记录它。

REORGANIZE 是一个“在线”操作,这意味着在操作开始时不需要大的 Sch-M 锁即可获得独占访问权限。而且,它可能是唯一的非事务性 DDL 语句。IE 它会做一些工作来避免持有长期锁。如果您跟踪锁定行为,您会看到类似以下内容:

在此输入图像描述