首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >死锁错误没有返回死锁SQL

死锁错误没有返回死锁SQL
EN

Database Administration用户
提问于 2012-01-13 13:22:45
回答 1查看 9.8K关注 0票数 13

Transaction (Process ID) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.

当我的一个网站很忙的时候,我会随机地得到这个错误。我大致知道发生在哪组表上,但根据我对其他程序的经验,我通常会在死锁发生的地方得到返回的SQL。我应该打开旗子让这一切发生吗?

我将尝试将死锁本身调试为单独的问题,因为这是我目前的主要问题。

我正在使用Server 2008标准版。

EN

回答 1

Database Administration用户

发布于 2017-07-31 21:58:31

接受答案并没有一直对我起作用。显然,在某些情况下,环形缓冲器可以丢弃事件。

ConnectItem

环形缓冲问题

可以解析system_health日志事件文件(来自这个答案):

代码语言:javascript
复制
with XmlDeadlockReports as
(
  select convert(xml, event_data) as EventData
  from sys.fn_xe_file_target_read_file(N'system_health*.xel', NULL, NULL, NULL)
  where substring(event_data, 1, 50) like '%"xml_deadlock_report"%'  
) 
select EventData.value('(event/@timestamp)[1]', 'datetime2(7)') as TimeStamp,
       EventData.query('event/data/value/deadlock') as XdlFile
  from XmlDeadlockReports
 order by TimeStamp desc

可以将XdlFile字段保存到.xdl文件中,并将其读入SSMS。在Server 2012中测试。

票数 5
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/10644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档