如何使用跟踪标记 1204
来源:互联网 发布:mac 4k显示器字体太小 编辑:程序博客网 时间:2024/04/28 10:05
-- =====================================================
-- 如何使用跟踪标记 1204
--
-- 邹建 2005.08(引用请保留此信息)
-- =====================================================
-- =====================================================
/*-- 说明
跟踪标记 1204 用于返回参与死锁的锁的类型以及当前受影响的命令。死锁信息将自动发送到错误日志。
开启跟踪标记使用 DBCC TRACEON ,第3个参数指定为-1,表示不单单针对当前connection,而是针对所有包括未来建立的connection
关闭跟踪标记使用 DBCC TRACEOFF
下面是在查询分析器中使用跟踪标记 1204 的演示, 死锁的信息被记录在 SQL Server 日志中,可以通过下面的方法查看:
企业管理器 -- 展开实例 -- 管理 -- SQL Server 日志
由于在企业管理器中查看时, 部分日志信息会被截断, 所以所以建议使用记事本一类的文本查看工具直接查看 /MSSQL/LOG 目录下的 ERRORLOG 文件
有关死锁信息的详细说明参考联机帮助(联机丛书--菜单中的GO--URL--输入下面的地址:
mk:@MSITStore:C:/Program%20Files/Microsoft%20SQL%20Server/80/Tools/Books/trblsql.chm::/tr_servdatabse_5xrn.htm
--*/
-- =====================================================
-- 测试环境
USE tempdb
GO
CREATE TABLE ta(id int)
INSERT ta SELECT 1
CREATE TABLE tb(id int)
INSERT tb SELECT 1
GO
-- 开启死锁记录
DBCC TRACEON(1204,3605,-1)
GO
-- 产生死锁 (查询窗口A)
SET LOCK_TIMEOUT -1
SET TRANSACTION ISOLATION LEVEL
REPEATABLE READ
BEGIN TRAN
SELECT * FROM ta WHERE id=1
WAITFOR DELAY '00:05:00'
UPDATE tb SET id=2 WHERE id=1
COMMIT TRAN
GO
-- 产生死锁 (查询窗口B)
SET LOCK_TIMEOUT -1
SET DEADLOCK_PRIORITY LOW
SET TRANSACTION ISOLATION LEVEL
REPEATABLE READ
BEGIN TRAN
SELECT * FROM tb WHERE id=1
UPDATE ta SET id=2 WHERE id=1
COMMIT TRAN
GO
-- 关闭死锁记录
DBCC TRACEOFF(1204,3605)
GO
-- 清除测试
DROP TABLE ta,tb
GO
-- 1204 产生的日志记录信息
2005-08-25 08:16:21.85 spid4 Node:1
2005-08-25 08:16:21.85 spid4 RID: 2:1:28:0 CleanCnt:2 Mode: U Flags: 0x2
2005-08-25 08:16:21.85 spid4 Grant List 0::
2005-08-25 08:16:21.85 spid4 Owner:0x1998aec0 Mode: S Flg:0x0 Ref:1 Life:02000000 SPID:52 ECID:0
2005-08-25 08:16:21.85 spid4 SPID: 52 ECID: 0 Statement Type: UPDATE Line #: 1
2005-08-25 08:16:21.85 spid4 Input Buf: Language Event: SET LOCK_TIMEOUT -1
SET TRANSACTION ISOLATION LEVEL
REPEATABLE READ
BEGIN TRAN
SELECT * FROM tb WHERE id=1
WAITFOR DELAY '00:01:00'
UPDATE ta SET id=2 WHERE id=1
COMMIT TRAN
2005-08-25 08:16:21.85 spid4 Requested By:
2005-08-25 08:16:21.85 spid4 ResType:LockOwner Stype:'OR' Mode: X SPID:51 ECID:0 Ec:(0x19B5B558) Value:0x1997b2c0 Cost:(1/0)
2005-08-25 08:16:21.85 spid4 Node:2
2005-08-25 08:16:21.85 spid4 RID: 2:1:15:0 CleanCnt:2 Mode: U Flags: 0x2
2005-08-25 08:16:21.85 spid4 Grant List 0::
2005-08-25 08:16:21.85 spid4 Owner:0x1997b3e0 Mode: S Flg:0x0 Ref:1 Life:02000000 SPID:51 ECID:0
2005-08-25 08:16:21.85 spid4 SPID: 51 ECID: 0 Statement Type: UPDATE Line #: 1
2005-08-25 08:16:21.85 spid4 Input Buf: Language Event:
SET LOCK_TIMEOUT -1
SET DEADLOCK_PRIORITY LOW
SET TRANSACTION ISOLATION LEVEL
REPEATABLE READ
BEGIN TRAN
SELECT * FROM ta WHERE id=1
WAITFOR DELAY '00:01:00'
UPDATE tb SET id=2 WHERE id=1
COMMIT TRAN
2005-08-25 08:16:21.85 spid4 Requested By:
2005-08-25 08:16:21.85 spid4 ResType:LockOwner Stype:'OR' Mode: X SPID:52 ECID:0 Ec:(0x1A24D558) Value:0x1998cfa0 Cost:(0/0)
2005-08-25 08:16:21.85 spid4 Victim Resource Owner:
2005-08-25 08:16:21.85 spid4 ResType:LockOwner Stype:'OR' Mode: X SPID:51 ECID:0 Ec:(0x19B5B558) Value:0x1997b2c0 Cost:(1/0)
-- 分析日志记录信息, 以分析 Node:1 为例, --** 标注的是说明
--** Node:x 在死锁的链中表示项目号 (x)。
2005-08-25 08:16:21.85 spid4 Node:1
2005-08-25 08:16:21.85 spid4 RID: 2:1:28:0 CleanCnt:2 Mode: U Flags: 0x2
--** Lists, 可以是授权(Grant)、转换(Convert)和等待(Wait),Grant List列举当前授权的所有者.
2005-08-25 08:16:21.85 spid4 Grant List 0::
2005-08-25 08:16:21.85 spid4 Owner:0x1998aec0 Mode: S Flg:0x0 Ref:1 Life:02000000 SPID:52 ECID:0
--** 在并行进程情况下,标识系统进程 ID 线程。条目 SPID x ECID 0 表示主线程,而 SPID x ECID > 0 表示同一 SPID 的子线程。
--** Statement Type: 语句类型
--** Line #:死锁发生时,正在执行的语句的行号
2005-08-25 08:16:21.85 spid4 SPID: 52 ECID: 0 Statement Type: UPDATE Line #: 1
--** input Buf 列出当前批处理中所有的语句。
2005-08-25 08:16:21.85 spid4 Input Buf: Language Event:
SET LOCK_TIMEOUT -1
SET TRANSACTION ISOLATION LEVEL
REPEATABLE READ
BEGIN TRAN
SELECT * FROM tb WHERE id=1
WAITFOR DELAY '00:01:00'
UPDATE ta SET id=2 WHERE id=1
COMMIT TRAN
2005-08-25 08:16:21.85 spid4 Requested By:
--** Mode 为线程请求、授权或等待的特定资源,指定锁的类型。模式可以是 IS(意向共享)、S(共享)、U(更新)、IX(意向独占)、SIX(与意向独占共享)和 X(独占)
2005-08-25 08:16:21.85 spid4 ResType:LockOwner Stype:'OR' Mode: X SPID:51 ECID:0 Ec:(0x19B5B558) Value:0x1997b2c0 Cost:(1/0)
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zjcxc/archive/2005/08/25/464682.aspx
- 如何使用跟踪标记 1204
- 如何使用跟踪标记 1204
- 如何使用跟踪标记 1204
- 如何使用跟踪标记 1204
- 如何使用跟踪标记 1204
- 如何使用跟踪标记 1204
- 如何使用跟踪标记 1204
- 如何使用跟踪标记 1204
- 如何使用跟踪标记 1204
- 如何使用跟踪标记 1204
- 如何使用跟踪标记 1204
- 如何使用跟踪标记 1204
- 跟踪标记全攻略
- 打开关闭跟踪标记
- 如何使用displaytag标记分页显示记录
- 如何使用FL Studio中的时间标记
- 如何使用javadoc注释中的标记
- 如何使用dbms_repair包标记坏块
- 101条伟大的计算机编程名言
- [转帖]叶开:Siebel中国之路三部曲(二)
- 浙江“农民银行”破冰--访全省首家农村资金互助社负责人冯贻法
- [转载]梦想成真 高兼容性启动U盘制作实例与分析 用ULTRAISO刻录ISO到U盘
- WinDbg查看数据(初级)
- 如何使用跟踪标记 1204
- Linux下的UltraEdit安装及去掉30天限制
- UIColor colorWithPatternImage代码片段
- 如何调优JVM - 优化Java虚拟机(大全+实例)
- 对任何一天是星期几算法的实现
- Exception in Thread main java.lang.NoClassDefFoundError
- C++中Static作用和使用方法
- TCP传输控制协议
- SSH的笔记