使用默认system_health分析死锁(Deadlock)-阿里云开发者社区

开发者社区> 科技小能手> 正文

使用默认system_health分析死锁(Deadlock)

简介:
+关注继续查看

2008之前我们分析死锁需要用profiler trace或者trace flag 1222,1204.2008中引入了一个新功能:Extended Events(扩展事件),可以监控Deadlock事件,并且性能更好。 

 

而且2008自带了一个默认扩展事件会话system_health,如果你运行在2008或者之上版本可以执行下面查询: 

 

 select * from sys.dm_xe_sessions

 

其中system_health会收集很多重要的信息,之后出现问题可以用来分析。system_health会话收集信息参考http://msdn.microsoft.com/en-us/library/ff877955.aspx。其中一项内容是:Any deadlocks that are detected.

 wKioL1PjHG6Q1qPEAACKasqBn60107.jpg

 

也就是SQL Server会自动收集deadlock的信息,并记录在ring_buffer。通过分析ring_buffer我们不需要使用profiler 或者Trace Flag就可以找到deadlock原因。

 

使用下面的代码查看deadlock_report的内容:

 

1
2
3
4
5
6
7
8
9
10
11
SELECT    xed.value('@timestamp''datetime'as Creation_Date,
         xed.query('.'AS Extend_Event
 FROM    (    SELECT    CAST([target_data] AS XML) AS Target_Data
             FROM    sys.dm_xe_session_targetsAS xt
                     INNERJOIN sys.dm_xe_sessions AS xs
                     ONxs.address = xt.event_session_address
             WHERE    xs.name = N'system_health'
                     ANDxt.target_name =N'ring_buffer')
 AS XML_Data
 CROSS APPLY Target_Data.nodes('RingBufferTarget/event[@name="xml_deadlock_report"]'AS XEventData(xed)
 ORDER BY Creation_Date DESC

 

默认的system_health在不影响性能的情况下将一些重要事件记录下来,方便我们后期做分析,这是一个非常好的功能。避免了之前可能由于没有及时监控而找不到原因的状况。

 

wKiom1PjG1SCRa7pAAHP0eEHWjk097.jpg

 

wKiom1PjG1XjhYX-AAPmb8Sm6Ns936.jpg



本文转自 lzf328 51CTO博客,原文链接:


http://blog.51cto.com/lzf328/1536869

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
php中使用exec,system等函数调用系统命令
php的内置函数exec,system都可以调用系统命令(shell命令),当然还有passthru,escapeshellcmd等函数。   在很多时候利用php的exec,system等函数调用系统命令可以帮助我们更好更快的完成工作。
682 0
flutter网络dio框架公共请求参数、请求header使用总结
> 本文章将讲述 > 1.get请求中配置公共参数 > 2.post请求配置公共参数 > 3.请求header配置
557 0
Python数据分析之anaconda安装和使用
今天开始学习Python数据分析了,说到Python数据分析,大家都会推荐使用anaconda,但作为一个初学者,总是很多疑虑,但在实践中解决了一部分,先和大家分享分享。
989 0
MongoDB · 特性分析 · Sharded cluster架构原理
为什么需要Sharded cluster? MongoDB目前3大核心优势:『灵活模式』+ 『高可用性』 + 『可扩展性』,通过json文档来实现灵活模式,通过复制集来保证高可用,通过Sharded cluster来保证可扩展性。 当MongoDB复制集遇到下面的业务场景时,你就需要考虑使用Sh
2595 0
《ANSYS 14有限元分析自学手册》一导读
随着计算力学、计算数学、工程管理学特别是信息技术的飞速发展,数值模拟技术日趋成熟。数值模拟可以广泛应用到土木、机械、电子、能源、冶金、国防军工、航空航天等诸多领域,并对这些领域产生了深远的影响。
1716 0
ThreadLocal应用与原理分析
ThreadLocal的作用 ThreadLocal类用来提供线程内部的局部变量,并且这些变量依靠线程独立存在.可以在多个线程中互不干扰的进行存储数据和修改数据,通过set,get 和remove方法, 每个线程都是独立的操作.ThreadLocal试图解决的问题是:在线程生命周期内,在任何运行时刻可以方便的访问一些数据,而不是依靠参数传递的方式。
671 0
23706
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载