我正在運行SQL Server 2008 R2上的死鎖問題。當在SQL事件探查器死鎖圖形看,問題似乎從查詢通知制止:查詢通知(SqlDependency)SQL Server 2008 R2 DeadLock
<resource-list>
<keylock hobtid="72057654759522304" dbid="6" objectname="MyDB.sys.query_notification_814081939" indexname="cidx" id="lock15ab2aa80" mode="RangeX-X" associatedObjectId="72057654759522304">
<owner-list>
<owner id="process5c5708" mode="RangeX-X"/>
</owner-list>
<waiter-list>
<waiter id="process4e9ae08" mode="RangeS-U" requestType="wait"/>
</waiter-list>
</keylock>
<keylock hobtid="72057654759522304" dbid="6" objectname="MyDB.sys.query_notification_814081939" indexname="cidx" id="lock15e56a300" mode="RangeS-U" associatedObjectId="72057654759522304">
<owner-list>
<owner id="process4e9ae08" mode="RangeS-U"/>
</owner-list>
<waiter-list>
<waiter id="process5c5708" mode="RangeS-U" requestType="wait"/>
</waiter-list>
</keylock>
</resource-list>
這些查詢通知使用的SqlDependency實現。 當更新由SQLDependency監視的表時,死鎖似乎會發生。
我真的不明白死鎖圖的語法.. KeyLock模式是RangeS-U only while using the serializable transaction isolation level.,對不對?
我也讀過這question ...我應該激活READ_COMMITED_SNAPSHOT嗎?
THX ...
你有沒有想過這個?我也看到了使用SqlDependency/Query Notification導致死鎖的情況。 –
我有相同的死鎖問題,但沒有公開交易。你弄明白了嗎? – dferidarov
除了我在下面的答案中列出的Microsoft給出的建議,我沒有真正的解決方案。 – LB40