SQL Server死锁主键相同表S与U锁

时间:2016-05-20 05:31:17

标签: sql sql-server database database-deadlocks

有人可以帮我解决这个僵局吗?到目前为止,我很难过。

据我所知,两个过程中的记录都以相同的顺序更新,所以我不明白造成这种僵局的原因。

有什么想法吗?

deadlock-list
deadlock victim=process225a3ac108
 process-list
....
resource-list
  keylock hobtid=72057603958046720 dbid=12 objectname=RV.dbo.RP_Accounts indexname=PK_RP_Accounts id=lock64e394980 mode=X associatedObjectId=72057603958046720
   owner-list
    owner id=processb6357d088 mode=X
   waiter-list
    waiter id=process225a3ac108 mode=S requestType=wait
  keylock hobtid=72057603958046720 dbid=12 objectname=RV.dbo.RP_Accounts indexname=PK_RP_Accounts id=lock1a4720f980 mode=X associatedObjectId=72057603958046720
   owner-list
    owner id=process225a3ac108 mode=X
   waiter-list
    waiter id=processb6357d088 mode=U requestType=wait

两个进程都在同一个更新语句上死锁,该语句的格式为:

update RP_Accounts
set AccountName = @Name, ...
where AccountId = @Id

AccountId是主键和聚簇索引。

0 个答案:

没有答案