【发布时间】:2019-02-23 10:53:59
【问题描述】:
我有一个表 A,主键上有一个聚集索引,第二列 (act_id) 有一个非聚集索引(表 B 的外键)
两个更新语句正在生成以下死锁: Deadlock 1
这个死锁似乎不是书签查找死锁,因为它在同一个索引和同一个 objid 上。在非聚集索引中包含 pk 并没有带来任何成功。 我确实明白,objid 不是recordid,而是索引中的一个范围。
导致此死锁的查询(例如,更新一组 act_id = 1,其中 act_id = 2)具有以下执行计划: Execution plan
有时相同的死锁出现在另一个只有一个聚集索引的表上:Same deadlock on another table
有人知道如何避免这种僵局吗?
【问题讨论】:
-
您的交易中有多个语句吗?你能发布整个事务的 SQL 吗?
标签: sql-server deadlock clustered-index non-clustered-index