Lock:死锁链事件类

Lock:Deadlock Chain 事件类是为死锁中的每个参与者生成的。

使用 Lock:Deadlock Chain 事件类监视死锁条件何时发生。 此信息有助于确定死锁是否显著影响应用程序的性能,以及涉及哪些对象。 可以检查修改这些对象的应用程序代码,以确定是否可以进行更改以最大程度地减少死锁。

Lock:Deadlock Chain 事件类数据列

数据列名称 数据类型 DESCRIPTION 列 ID 可筛选
BinaryData image 锁定资源标识符。 2 是的
数据库ID int 此资源所属的数据库的 ID。 如果在跟踪中捕获 ServerName 数据列且服务器可用,SQL Server Profiler 将显示数据库名称。 可使用 DB_ID 函数来确定数据库的值。 3 是的
数据库名称 nvarchar 资源所属的数据库的名称。 35 是的
EventClass int 事件类型 = 59。 二十七
事件序列 int 给定事件在请求中的顺序。 51
事件子类 int 事件子类的类型。

101=资源类型锁定

102=资源类型 交换
21 是的
整数数据 int 死锁编号。 在服务器启动时,数字从0开始分配,并在每次发生死锁时递增。 二十五 是的
整数数据2 int 标识为仅供参考。 不支持。 不保证以后的兼容性。 55 是的
IsSystem int 指示事件是发生在系统进程中还是发生在用户进程中。 1 = 系统,0 = 用户。 六十 是的
LoginSid image 登录用户的安全标识号 (SID)。 您可以在 sys.server_principals 目录视图中找到此信息。 服务器中的每个登录名都具有唯一的 SID。 41 是的
模式 int 0=NULL - 与所有其他锁模式兼容(LCK_M_NL)

1=架构稳定性锁 (LCK_M_SCH_S)

2=架构修改锁 (LCK_M_SCH_M)

3=共享锁 (LCK_M_S)

4=更新锁 (LCK_M_U)

5=排他锁 (LCK_M_X)

6=意向共享锁 (LCK_M_IS)

7=意向更新锁 (LCK_M_IU)

8=意向排他锁 (LCK_M_IX)

9=共享以更新(LCK_M_SIU)

10=与意向独占共享 (LCK_M_SIX)

11=通过意向独占进行更新(LCK_M_UIX)

12=批量更新锁(LCK_M_BU)

13=密钥范围共享/共享(LCK_M_RS_S)

14=密钥范围共享/更新(LCK_M_RS_U)

15=键范围插入 NULL (LCK_M_RI_NL)

16=键范围插入共享 (LCK_M_RI_S)

17=关键范围插入更新(LCK_M_RI_U)

18=键范围插入独占 (LCK_M_RI_X)

19=密钥范围独占共享 (LCK_M_RX_S)

20=密钥范围独占更新 (LCK_M_RX_U)

21=键范围独占 (LCK_M_RX_X)
32 是的
ObjectID(对象标识符) int 锁定的对象(如果可用且适用)的 ID。 22 是的
ObjectID2 bigint 相关对象或实体的 ID(如果可用且适用)。 56 是的
所有者ID int 1=交易

2=光标

3=会话

4=共享事务工作空间

5=独占事务工作区
58 是的
RequestID int 包含该语句的请求的 ID。 49 是的
服务器名称 nvarchar 要跟踪的 SQL Server 实例的名称。 26
SessionLoginName nvarchar 发起会话的用户的登录名。 例如,如果使用 Login1 连接到 SQL Server,并将语句作为 Login2 执行,SessionLoginName 将显示 Login1,LoginName 显示 Login2。 此列同时显示 SQL Server 和 Microsoft Windows 登录名。 64 是的
SPID int 该事件发生的会话 ID。 12 是的
开始时间 datetime 该事件(如果存在)的启动时间。 14 是的
TextData ntext 文本值取决于资源类型 1 是的
TransactionID bigint 系统分配的事务 ID。 4 是的
类型 int 1=空资源

2=数据库

3=文件

5=对象

6=页

7=关键

8=程度

9=RID

10=应用程序

11=METADATA

12=AUTONAMEDB

13=HOBT

14=分配单元
57 是的

另请参阅

sp_trace_setevent(Transact-SQL)
sys.dm_tran_locks(Transact-SQL)