SQLServer怎么确定发生死锁的代码的位置???

tongji_006 2015-01-03 05:45:56
SQLServer怎么确定发生死锁的代码的位置???



如图片所示。。。

这个两个存储过程执行,发生了死锁。

问题一:提示是第33行,请问这个第33行,应该从哪里开始数,SQLServer显示行号,它的33行好像是不准确的。
应该从 存储过程的 as begin开始吗???

问题二:它们都调用了存储过程“Usp_DAListForEnergyData”,但是传入参数是不一样的。死锁应该是发生在这个存储过程里面。
怎么样可以准确知道那一句发生死锁了???

“sp_who_lock”只能知道那些存储过程之间发生了死锁。
...全文
803 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
唐诗三百首 2015-02-16
  • 打赏
  • 举报
回复
建议启用1222跟踪标记,发生死锁后查看SQL日志,有详细的死锁日志信息.

dbcc traceon(1222,-1)
Neo_whl 2015-01-27
  • 打赏
  • 举报
回复
选中多少行执行,从选中的第一行算,如果是执行存储过程,应该是从存储过程t-sql语句部分开始算
starrycheng 2015-01-27
  • 打赏
  • 举报
回复
有没有大神测试过啊,SQLServer提示的行应该从哪里开始数???
zl194 2015-01-04
  • 打赏
  • 举报
回复
我理解的是从as开始的,最后写个简单的试试。
starrycheng 2015-01-03
  • 打赏
  • 举报
回复
create proc 前面的语句算不算 33 行里面??? 还是从“as”还是, 还是从“begin”开始???

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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