加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

Sqlserver 死锁日志 常见字段说明

发布时间:2020-12-12 13:22:24 所属栏目:MsSql教程 来源:网络整理
导读:转自: SQL Server死锁日志分析(打开1204标记) 使用跟踪标记 1204 --打开跟踪标记 DBCC TRACEON (1204,-1) --关闭跟踪标记 DBCC TRACEOFF (1204,Arial; line-height:26px"> 处于死锁状态时,跟踪标记 1204 在等待的线程、存在等待线程的资源和控制这些资源的

转自: SQL Server死锁日志分析(打开1204标记)

使用跟踪标记 1204

--打开跟踪标记
DBCC TRACEON (1204,-1)

--关闭跟踪标记
DBCC TRACEOFF (1204,Arial; line-height:26px"> 处于死锁状态时,跟踪标记 1204 在等待的线程、存在等待线程的资源和控制这些资源的线程间画出相关循环。

跟踪标记 1204 报告中的术语
尽管根据所涉及的资源,跟踪标记 1204 会返回不同信息,但是报告通常会包含如下术语:

Node 节点:x
在死锁的链中表示项目号 (x)。

List 列表
锁的所有者可能是如下列表中的一部分:授权、转换和等待。

Grant List 授权列表?
列举资源的当前所有者。

转换列表?
列举要把锁转换到较高级别的当前所有者。

Wait List 等待列表?
列举当前新锁对资源的请求。?
SPID:x ECID:x

在并行进程情况下,标识系统进程 ID 线程。条目 SPID x ECID 0 表示主线程,而 SPID x ECID > 0 表示同一 SPID 的子线程。

Statement Type 语句类型
为 SELECT,INSERT,UPDATE 或 DELETE 语句,线程在这些语句上具有权限。

行号
发生死锁时,列出当前正在执行的批处理语句行。

Input Buf
列出当前批处理中所有的语句。

Mode
为线程请求、授权或等待的特定资源,指定锁的类型。模式可以是 IS(意向共享)、S(共享)、U(更新)、IX(意向独占)、SIX(与意向独占共享)和 X(独占)。有关更多信息,请参见SQL Server 中的锁定介绍。

RID
在对锁进行控制或请求的表中,标识单个行。

RID 在跟踪标记 1204 中,表示为 RID:db_id:file_id:page_no:row_no;例如,RID: 1:1:1253:0。

TAB
标识对锁进行控制或请求的表。
TAB 在跟踪标记 1204 中表示为 TAB:db_id:object_id;例如,TAB: 2:2009058193。

KEY
在对锁进行控制或请求的索引内,标识键范围。
KEY 在跟踪标记 1204中表示为 KEY:db_id:object_id:index_id;例如,KEY: 2:1977058079:1。

PAG
标识对锁进行控制或请求的页资源。
PAG 在跟踪标记 1204 中表示为 PAG:db_id:file_id:page_no;例如 PAG: 7:1:168。

EXT
标识扩展盘区结构。
EXT 在跟踪标记 1204 中表示为 EXT:db_id:file_id:extent_no;例如,EXT: 7:1:9。

DB
标识数据库锁。
DB 在跟踪标记 1204 中表示为如下方式之一:

DB:db_id?
DB:db_id[BULK-OP-DB] 标识了备份数据库占用的数据库锁。
DB:db_id[BULK-OP-LOG] 标识了特定数据库的备份日志占用的锁。?
IND

标识在索引资源上创建的索引占用的锁。

IND 在跟踪标记 1204 中表示为如下方式之一:?
IND:db_id:object_id:index_id
IND:db_id:object_id:index_id[INDEX_ID] 表明锁在索引 ID 上。
IND:db_id:object_id:index_id[INDEX_NAME] 表明锁在索引名上。

APP
标识应用程序资源占用的锁。
APP 在跟踪标记 1204 中表示为APP:lock_resource;例如,APP:Formf370f478。

当 SQL Server 选取应用程序资源为死锁牺牲品时,该应用程序资源的所有者将不会得到先前描述的错误信息。相反,当 sp_getapplock 存储过程在该应用程序资源上执行时,应用程序所有者会获得返回代码"-3"。有关信息,请参见 sp_getapplock。

Victim Resource Owner?
将 SQL Server 选择的特殊线程指定为中断死锁循环的牺牲品。选中的线程(以 SPID x ECID 0 标识)和所有现有子线程(以 SPID x ECID > 0 标识)将被终止。

下一个分支
表示来自死锁循环中涉及的相同 SPID 的两个或多个子线程。

当死锁涉及到平行线程时,各种子线程可能会在通讯缓冲区发生阻塞,而且一个线程会在等待别的子线程中结束。只有所有的其它线程都涉及死锁,才会发生死锁状态。下一个分支表示跟踪其它路径的死锁链。

根据PAG锁要找到相关数据库表的方法:

DBCC TRACEON (3604)? DBCC PAGE (db_id,file_id,page_no) DBCC TRACEOFF (3604)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读