启动SQLServer的死锁检查

原创 2005年03月01日 11:42:00

对于数据库死锁,通常可以通过TRACE FLAG 120412051206,检查ERRORLOG里面的输出,和分析SQLTRACE的执行上下文判断死锁问题的来由。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


 

执行下面的话可以把死锁记录到Errorlog中:

dbcc traceon (1204, 3605, -1)
go
dbcc tracestatus(-1)
go

 

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

(所影响的行数为 3 行)

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

 
 
 
 

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:0x<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />4c25cba0
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     ----------------------------------

 

 

 
 
 
 
 
 
 

跟踪标记

描述

1204

返回参与死锁的锁的类型以及当前受影响的命令。

 

实际上可以在“错误 1000 -1999中找到他们:

 

1204

19

SQL Server 此时无法获取 LOCK 资源。请在活动用户数较少时重新运行您的语句,或者请求系统管理员检查 SQL Server 锁和内存配置。

1205

13

事务(进程 ID %1!)与另一个进程已被死锁在资源 {%2!} 上,且该事务已被选作死锁牺牲品。请重新运行该事务。

1206

18

事务管理器已取消了分布式事务。

 

 

SQLSERVER数据库快速查找死锁图信息

题外话:之所以写这个博客,是应了群里大家的要求,从来没有写过,写的不好多担待。 引言:不要以为看到引言就觉得像是写书,其实我是想在这里说下我寻找死锁的旅程。我们公司做的是web项目,大概一年前开始接...
  • gaochao515826435
  • gaochao515826435
  • 2017年01月24日 10:29
  • 1847

SQLServer 2008数据库查看死锁、堵塞的SQL语句

SQLServer 2008数据库查看死锁、堵塞的SQL语句 死锁和堵塞一直是性能测试执行中关注的重点。 下面是我整理的监控sql server数据库,在性能测试过程中是否出现死锁、堵...
  • hualusiyu
  • hualusiyu
  • 2014年09月16日 12:21
  • 1168

SqlServer 并发事务:死锁跟踪(三)6种跟踪死锁的方法总结

方法一:打开profiler跟踪事件 locks: deadlock graph 方法二:打开1222或者1204标志记录死锁,在sqlserver日志查看 DBCC TRACEON...
  • kk185800961
  • kk185800961
  • 2015年01月07日 22:51
  • 8256

sqlserver中select造成死锁

项目上线,准备验收前出现了一个严重的问题:很多select语句作为死锁的牺牲,大部分报表无法打开。这个问题影响范围很大所有的报表都无法访问,而我们的报表是放在电视上面轮播的,电视放在工厂里面,所以出现...
  • hailang9027
  • hailang9027
  • 2016年07月08日 15:05
  • 3835

SqlServer 并发事务:死锁跟踪(一)简单测试

-- 测试代码 -- DROP TABLE Test CREATE TABLE Test ( id INT, name VARCHAR(20), info VARCHAR(20), ) CR...
  • kk185800961
  • kk185800961
  • 2014年11月25日 20:25
  • 3117

sqlserver高并发情况下 select 和update操作造成死锁的解决方法

最近在项目上线使用过程中使用SqlServer的时候发现在高并发情况下,频繁更新和频繁查询引发死锁。通常我们知道如果两个事务同时对一个表进行插入或修改数据,会发生在请求对表的X锁时,已经被对方持有了。...
  • u013547384
  • u013547384
  • 2016年12月16日 09:14
  • 3505

SQL Server中死锁的查询和处理

前些天在同步数据的时候遇到了死锁,今天就结合一个简单的demo讲解一下死锁的产生、查询和处理方法。         首先,我们先来了解一下什么是死锁?死锁的本质是一种僵持状态,是多个主体对于资源的争...
  • u010773667
  • u010773667
  • 2015年09月20日 17:55
  • 1184

第十六章——处理锁、阻塞和死锁(3)——使用SQLServer Profiler侦测死锁

前言: 作为DBA,可能经常会遇到有同事或者客户反映经常发生死锁,影响了系统的使用。此时,你需要尽快侦测和处理这类问题。 死锁是当两个或者以上的事务互相阻塞引起的。在这种情况下两个事务会无限期地等...
  • DBA_Huangzj
  • DBA_Huangzj
  • 2013年03月20日 17:54
  • 13364

SqlServer 并发事务:死锁跟踪(二)确定死锁锁定的资源

--测试示例: CREATE TABLE mytest ( id INT, name VARCHAR(20), info VARCHAR(20),...
  • kk185800961
  • kk185800961
  • 2014年12月02日 23:57
  • 2102

一次查找sqlserver死锁的经历

查找bug是程序员的家常便饭,我身边的人喜欢让用户来重现问题。当然他们也会从正式服务器上下载错误log,然后尝试分析log,不过当错误不是那种不经思考就可识别的情况,他们就会将问题推向用户,甚至怪罪程...
  • u010408365
  • u010408365
  • 2015年11月11日 16:39
  • 1858
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:启动SQLServer的死锁检查
举报原因:
原因补充:

(最多只允许输入30个字)