使用跟踪标记 1204

--打开跟踪标记 DBCC TRACEON (1204,-1)
--关闭跟踪标记 DBCC TRACEOFF (1204,-1)
处于死锁状态时,跟踪标记 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)

SQL Server死锁日志各字段含义的更多相关文章

  1. SQL Server死锁

    SQL Server死锁 多个事务之间互相等待对方的资源,导致这些事务永久等待 注意是永久等待,而非长事务 死锁的4个条件 互斥条件(Mutual exclusion):资源不能被共享,只能由一个进程 ...

  2. SQL Server中日志

    再谈SQL Server中日志的的作用 简介 之前我已经写了一个关于SQL Server日志的简单系列文章.本篇文章会进一步挖掘日志背后的一些概念,原理以及作用.如果您没有看过我之前的文章,请参阅: ...

  3. sql server 错误日志errorlog

    一 .概述 SQL Server 将某些系统事件和用户定义事件记录到 SQL Server 错误日志和 Microsoft Windows 应用程序日志中. 这两种日志都会自动给所有记录事件加上时间戳 ...

  4. sql server 跟踪日志

    1,当SQL Server错误日志很大时,手工运行:  exec sp_cycle_errorlog 系统存储过程,即可使用新的日志文件 sqlserver系统自动调用 exec sp_cycle_e ...

  5. Update导致SQL Server死锁的典型方法(转载)

    此文为转载文章,描述的很好,没有验证过. 最近遇到了一个看上去很奇怪,分析起来很有意思的死锁问题.这个死锁看上去难以理解.而分析过程中,又使用了很多分析SQL Server死锁的典型方法.记录下来整个 ...

  6. SQL Server 错误日志过滤(ERRORLOG)

    一.背景 有一天我发现SQL Server服务器的错误日志中包括非常多关于sa用户的登陆错误信息:“Login failed for user 'sa'. 原因: 评估密码时出错.[客户端: XX.X ...

  7. [AlwaysOn Availability Groups]SQL Server错误日志(AG)

    SQL Server错误日志(AG) SQL Server错误日志会记录影响AG的时间,比如: 1.和Windows故障转移集群交互 2.可用副本的状态 3.可用数据的状态 4.AG endpoint ...

  8. SQL Server自动化运维系列——监控磁盘剩余空间及SQL Server错误日志(Power Shell)

    需求描述 在我们的生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的检测等.如果发生异常,需要提前预警的,通知形式一般为发邮件告知. 在所有的自检流程中最基础的一个就是磁盘剩余空间检测. ...

  9. 人人都是 DBA(VI)SQL Server 事务日志

    SQL Server 的数据库引擎通过事务服务(Transaction Services)提供事务的 ACID 属性支持.ACID 属性包括: 原子性(Atomicity) 一致性(Consisten ...

随机推荐

  1. [LeetCode#84]Largest Rectangle in Histogram

    Problem: Given n non-negative integers representing the histogram's bar height where the width of ea ...

  2. WebSorcket学习

    传统 Web 模式在处理高并发及实时性需求的时候经常采用以下方案: 1.轮询,原理简单易懂,就是客户端通过一定的时间间隔以频繁请求的方式向服务器发送请求,来保持客户端和服务器端的数据同步.问题很明显, ...

  3. TimePicker,TimePickerDialog以及自定义timepicker(一)

    场景:在activity上点击,弹出一个dialog,然后点击dialog上的一个按钮,在弹出时间.以及自定义dialog 懒,要用到一个选择时间的需求,只要求小时和分钟,弹出式,第一时间想到了tim ...

  4. HDOJ/HDU 2560 Buildings(嗯~水题)

    Problem Description We divide the HZNU Campus into N*M grids. As you can see from the picture below, ...

  5. 获得当前屏幕的CGRect

    CGRect mainScreen = [[UIScreen mainScreen] bounds];

  6. Debian添加软件源

    安装完渗透测试系统kali linux后,默认的只有security这个源,只更新那些集成的安全软件,不能安装其他新软件,官网给出了3类源: Kali Linux提供了3类软件源,这些源在世界各地都有 ...

  7. 自定义UITableView的Seperator

    在默认配置中 ,UITableView的Cell之间的Seperator左边总是空出一块,即使在Storyboard中设置为0 ,也没有效果 需要在代码中进行配置,在ViewController中实现 ...

  8. sqlplus乱码

    使用SecureCRT或是pietty_ch连接到一台安装有Oracle DB 10g的RHEL4.2的机器,linux使用的shell是默认的bash. 在bash提示符下,使用Del键或者Back ...

  9. Google协作平台

    本博文的主要内容有 .Google协作平台的介绍 1.Google协作平台的介绍 https://zh.wikipedia.org/wiki/Google%E5%8D%8F%E4%BD%9C%E5%B ...

  10. 应用360云盘与SVN版本管理服务器搭建基于云端的版本控制软件

    步骤一:(安装软件) 1.TortoiseSVN 2.VisualSVN-Server-2.71 3.安装云盘客户端360wangpan_setup 步骤二:(VisualSVN Server设置) ...