我在Server 2016中的一些列存储索引上运行alter index reorganize,并收到了一条死锁消息。
reorganize会永远是受害者吗?因为我不想导致其他工作失败,我正在考虑添加一个set deadlock_priority。或者这是alter index语句的内置内容?
发布于 2022-11-03 19:16:04
没有文档证明它具有特定的死锁优先级,而且它确实会进行数据更改。因此,您应该显式地设置死锁优先级,并可能设置一个retry循环,以强制执行行为并记录它。
重组是一种“在线”操作,这意味着在操作开始时不需要大的Sch-M锁就可以进行独占访问。而且,它可能是唯一非事务性的DDL语句。为了避免长时间的锁,它做了少量的工作.如果您跟踪锁定行为,您将看到如下内容:

https://dba.stackexchange.com/questions/319154
复制相似问题