小编use*_*724的帖子

Sql Server死锁对象ID太大

我试图跟踪我们的SQL 2005数据库(64位)中发生的死锁.我们目前没有启用快照隔离.

我打开了tf-1204并收到了下面的输出.

通过此输出,我可以确定节点1是一个存储过程,它选择数据并仅修改#temp表中的值.

节点2是另一个存储过程,对单行数据进行基于简单主键的更新.

我无法确定的是这里争用的实际资源.10的密钥:72057594060734464和10:72057594038910976允许我确定数据库,但无法使用object_name解析这些对象ID.实际上,它们应该是int值,所以我不确定这些大数字来自哪里.

在研究这个问题时,我也能从Activity Monitor for Object ID中获得类似的值.

如何解析这些对象标识符?

这是死锁tf-1204输出:

2008-12-05 07:48:28.19 spid4s      ----------------------------------
2008-12-05 07:48:28.19 spid4s      Starting deadlock search 634
2008-12-05 07:48:28.19 spid4s      Target Resource Owner:
2008-12-05 07:48:28.19 spid4s       ResType:LockOwner Stype:'OR'Xdes:0x00000000813B8700 Mode: X SPID:77 BatchID:0 ECID:0 TaskProxy:(0x00000000CE6D8598) Value:0x1043f980
2008-12-05 07:48:28.19 spid4s      0:Insert new node: Node:1     ResType:LockOwner Stype:'OR'Xdes:0x00000000813B8700 Mode: X SPID:77 BatchID:0 ECID:0 TaskProxy:(0x00000000CE6D8598) Value:0x1043f980
2008-12-05 07:48:28.19 spid4s      1:SearchOR Considering new blocker - task: 0000000000EC5198, Worker 00000000C89881C0
2008-12-05 07:48:28.19 spid4s      2:Insert new node: Node:2     ResType:LockOwner Stype:'OR'Xdes:0x00000000808F1A80 Mode: …

sql-server deadlock

7
推荐指数
1
解决办法
6187
查看次数

标签 统计

deadlock ×1

sql-server ×1