sql数据库死锁检查启动方法

发布时间:2020-07-08编辑:脚本学堂
有关sql数据库死锁检查的启动方法,如何把死锁记录到errorlog错误日志中,dbcc traceon跟踪数据库死锁的方法,感兴趣的朋友参考下。

在sql数据库中,有关数据库死锁数据库死锁原因与死锁问题解决方法),通常可以通过trace flag 1204、1205、1206,检查errorlog里面的输出,和分析sqltrace的执行上下文判断死锁问题的来由。

traceon函数的第三个参数设置为-1,表示不单单针对当前connection,而是针对所有包括未来建立 的connection。
如此,才对于数据库死锁,通常可以通过trace flag 1204、1205、1206,检查errorlog里面的输出,和分析sqltrace的执行上下文判断死锁问题的来由。
traceon函数的第三个参数设置为-1,表示不单单针对当前connection,而是针对所有包括未来建立的connection。
否则只是监视当前已经建立的数据库连接了。

把死锁记录到Errorlog中:
 

复制代码 代码示例:
dbcc traceon (1204, 3605, -1)
go
dbcc tracestatus(-1)
go

输出结果:
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
TraceFlag Status
--------- ------
1204      1
1205      1
3605      1

(所影响的行数为 3 行)

DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

此后,可以查看数据库的例行日志,每隔一段时间,数据库都会检查死锁(数据库死锁怎么办,查看数据库死锁的sql语句),日志文本:
 

2004-01-16 18:34:38.50 spid4     ----------------------------------
2004-01-16 18:34:38.50 spid4     Starting deadlock search 1976
2004-01-16 18:34:38.50 spid4     Target Resource Owner:
2004-01-16 18:34:38.50 spid4      ResType:LockOwner Stype:@#OR@# Mode: U SPID:55 ECID:0 Ec:(0xAA577570) Value:0x4c25cba0
2004-01-16 18:34:38.50 spid4      Node:1  ResType:LockOwner Stype:@#OR@# Mode: U SPID:55 ECID:0 Ec:(0xAA577570) Value:0x4c25cba0
2004-01-16 18:34:38.50 spid4      Node:2  ResType:LockOwner Stype:@#OR@# Mode: U SPID:71 ECID:0 Ec:(0xABF07570) Value:0x9bd0ba00
2004-01-16 18:34:38.50 spid4    
2004-01-16 18:34:38.50 spid4     -- next branch --
2004-01-16 18:34:38.50 spid4      Node:2  ResType:LockOwner Stype:@#OR@# Mode: U SPID:71 ECID:0 Ec:(0xABF07570) Value:0x9bd0ba00
2004-01-16 18:34:38.50 spid4    
2004-01-16 18:34:38.50 spid4    
2004-01-16 18:34:38.50 spid4     End deadlock search 1976 ... a deadlock was not found.
2004-01-16 18:34:38.50 spid4     ----------------------------------
 

 
附录:
DBCC TRACEON
打开(启用)指定的跟踪标记。

注释
跟踪标记用于自定义某些控制 Microsoft? SQL Server? 操作方式的特性。跟踪标记在服务器
一直保持启用状态,直到通过执行 DBCC TRACEOFF 语句对其禁用为止。在发出 DBCC TRACEON
语句之前,连入到服务器的新连接看不到任何跟踪标记。一旦发出该语句,该连接就能看到服务
器中当前启用的所有跟踪标记(即使这些标记是由其它连接启用)。

跟踪标记
跟踪标记用于临时设置服务器的特定特征或关闭特定行为。如果启动 Microsoft? SQL Server
时设置了跟踪标记 3205,将禁用磁带驱动程序的硬件压缩。跟踪标记经常用于诊断性能问题,
或调试存储过程或复杂的计算机系统。

下列跟踪标记在 SQL Server 中可用。
跟踪标记 描述
1204 返回参与死锁的锁的类型以及当前受影响的命令。
实际上可以在“错误 1000 -1999”中找到他们:
1204 19 SQL Server 此时无法获取 LOCK 资源。请在活动用户数较少时重新运行您的语句,或者请求系统管理员检查 SQL Server 锁和内存配置。
1205 13 事务(进程 ID %1!)与另一个进程已被死锁在资源 {%2!} 上,且该事务已被选作死锁牺牲品。请重新运行该事务。
1206 18 事务管理器已取消了分布式事务。