[英]SQL Server - Deadlock on clustered index
我有一個表A,主鍵上有聚簇索引,第二列上有非聚集索引(act_id)(表B的外鍵)
兩個更新語句正在生成以下死鎖: 死鎖1
這個死鎖似乎不是書簽查找死鎖,因為它在同一個索引和相同的objid上。 在非聚集索引中包含pk並沒有帶來任何成功。 我明白了,objid不是recordid,而是索引中的范圍。
查詢(例如更新set act_id = 1,其中act_id = 2)導致此死鎖,具有以下執行計划: 執行計划
有時,同一個死鎖位於另一個只有一個聚簇索引的表上:另一個表上的死鎖相同
有人知道如何避免這種僵局嗎?
這兩個查詢似乎都在更新Clustered Index的B-Tree的相同部分。 這個並發問題有多個答案。 一個是獲得更快的硬件。 另一個是沒有可以改變的主鍵。
我先問你:你是從兩個單獨的查詢更新主鍵嗎?
你有自然鑰匙嗎?
您是否在主/外鍵上設置了級聯更新?
你的其他阻止查詢是什么?
在非聚集索引中包含pk並沒有帶來任何成功
那是因為pk總是存在於所有非聚集索引中,它還會如何進行書簽查找?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.