sql-server-2008 - 帮助解释跟踪以查找 sql server 死锁

标签 sql-server-2008

首先,我必须说我对 sql server 有一定的基础知识,因此我正在尝试找出解决死锁的方法。

我运行了 dbcc traceon (1204, -1),执行了罪魁祸首代码,最后执行了 xp_readerrorlog 存储过程,它给出了以下输出:

Deadlock encountered .... Printing deadlock information
Wait-for graph
NULL
Node:1  
OBJECT: 9:1093578934:0         CleanCnt:2 Mode:IX Flags: 0x1
 Grant List 2:
 Grant List 3:
   Owner:0x000000008165A780 Mode: IX       Flg:0x40 Ref:2 Life:02000000 SPID:57 ECID:0 XactLockInfo: 0x0000000082F00EC0
   SPID: 57 ECID: 0 Statement Type: EXECUTE Line #: 1
   Input Buf: RPC Event: Proc [Database Id = 9 Object Id = 1877581727]
Requested by: 
  ResType:LockOwner Stype:'OR'Xdes:0x0000000082E02E80 Mode: S SPID:56 BatchID:0 ECID:0 TaskProxy:(0x00000000826EE538) Value:0x81a6f9c0 Cost:(0/1492)
NULL
Node:2  
APPLICATION: 9:0:[Proligent Analytics]:(6ff56412) CleanCnt:2 Mode:X Flags: 0x5
 Grant List 2:
   Owner:0x000000008165DE40 Mode: X        Flg:0x40 Ref:1 Life:00000000 SPID:56 ECID:0 XactLockInfo: 0x0000000082E02EC0
   SPID: 56 ECID: 0 Statement Type: OPEN CURSOR Line #: 27
   Input Buf: RPC Event: Proc [Database Id = 9 Object Id = 1966630049]
Requested by: 
  ResType:LockOwner Stype:'OR'Xdes:0x0000000082F00E80 Mode: X SPID:57 BatchID:0 ECID:0 TaskProxy:(0x00000000827B8538) Value:0x83e29d40 Cost:(0/250576)
NULL
Victim Resource Owner:
 ResType:LockOwner Stype:'OR'Xdes:0x0000000082E02E80 Mode: S SPID:56 BatchID:0 ECID:0 TaskProxy:(0x00000000826EE538) Value:0x81a6f9c0 Cost:(0/1492)

我的问题是我不知道如何使用它来了解发生了什么。我读到您可以获取被锁定的存储过程,但我不知道如何获取。

请您多多指点。

谢谢

最佳答案

正如@Martin Smith在他的评论中所说: select db_name(9), object_name(1093578934,9), object_name(1966630049,9), object_name(1877581727,9) 应该给你一些对象。

关于sql-server-2008 - 帮助解释跟踪以查找 sql server 死锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7475546/

相关文章:

sql - 用值更新重复列

sql - 陷入数据库设计问题

SQL:返回包含具有相同值的行数的列

使用非连续范围从 Excel 导入 SQL?

SQL - 从一个表中选择具有相似值但具有不同前缀的所有行

c# - 针对 Oracle、Sql Server 和 Mongodb 构建聚合/汇总报告数据库

sql-server-2008 - 通过分组将行选择到列中

Python 访问 SQL Server 2008

当 IDENTITY_INSERT 设置为 OFF 时,SQL 无法在表 'Table' 中插入标识列的显式值

sql-server - 如何同步 SQL Server 数据库的两个(或 n 个)复制进程?