SQL Server 2005 如何查看并找出出死锁?

meerio 2010-09-10 04:20:39
现有一死锁结果(sp_lock取出),如何看出是哪个造成的死锁?应该如何看?
...全文
361 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
claro 2010-09-10
  • 打赏
  • 举报
回复
obuntu在2F回复的方式是最直接的,但要确认是否对数据库有影响。

同时在相关的信息中可以得到死锁宿主以及牺牲品的相关语句。如果死锁频繁,得出的结果可能会很多,建议用notepad+进行剖析。

希望得到详细错误,可以尝试开启1222跟踪。

--查询跟踪状态
dbcc tracestats

--开启跟踪
dbcc traceon(1222,-1)

--关闭跟踪
dbcc traceoff(1222,-1)

--注:实例重启,跟踪标志需重新开启。
王向飞 2010-09-10
  • 打赏
  • 举报
回复
sp_lock
xuyiquan1981 2010-09-10
  • 打赏
  • 举报
回复
sp_who, sp_who2,sp_lock,sp_lock2
Austindatabases 2010-09-10
  • 打赏
  • 举报
回复
http://blog.csdn.net/liuhuayang/archive/2010/08/23/5831387.aspx

希望对你有点用处
obuntu 2010-09-10
  • 打赏
  • 举报
回复
要分清死锁跟阻塞。。
如果是死锁,系统会选择其中一个,然后直接kill掉了,一般是无法实时捕捉的;
阻塞的,看下blocked就知道了。
meerio 2010-09-10
  • 打赏
  • 举报
回复
spid和哪个用对应我知道,但这个结果我不知道如何看出是哪个spid死锁了
cjzm83 2010-09-10
  • 打赏
  • 举报
回复

select * from sys.dm_tran_locks
obuntu 2010-09-10
  • 打赏
  • 举报
回复
dbcc traceon(1204,-1)

在errorlog 就可以看到详细的死锁信息了,死锁一发现,一般是会被SQL Server 直接kill 掉了。
xuam 2010-09-10
  • 打赏
  • 举报
回复
sp_who ,sp_who2

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧