【监控笔记】【2.2】扩展事件——死锁监控
如何监控死锁?
【1】windows性能监控器(Performance Monitor)
windows性能监控器(Performance Monitor)
Object:SQLServer:Locks
Counter:Number of Deadlocks/sec
Instance:_Total
--查看自上次启动服务,死锁发生的次数 select * from sys.dm_os_performance_counters where counter_name like '%dead%'
【2】开启跟踪标识记录死锁信息到错误日志(跟踪标识集合)
相关生产实践引用参考:如何捕获和记录SQL死锁
DBCC TRACEON (3605,1204,1222,-1) 3605 将DBCC的结果输出到错误日志。 1204 返回参与死锁的锁的资源和类型,以及受影响的当前命令。 1222 返回参与死锁的锁的资源和类型,以及使用了不符合任何 XSD 架构的 XML 格式的受影响的当前命令(比1204更进一步,SQL 2005及以上可用)。 -1 以全局方式打开指定的跟踪标记。以上跟踪标志作用域都是全局,即在SQL Server运行过程中,会一直发挥作用,直到SQL Server重启如果要确保SQL Server在重启后自动开启这些标志,可以在SQL Server服务启动选项中,使用 /T 启动选项指定跟踪标志在启动期间设置为开。(位于SQL Server配置管理器->SQL Server服务->SQL Server->属性->高级->启动参数)
【3】SQL Prifiler 和 服务端的 SQL Trace
相关生产实践引用参考:如何捕获和记录SQL死锁
Trace Event Class : Locks Event Name : Deadlock Graph,会给出xml图示
【4】默认扩展事件(System Health)
从MSSQL 2008 开始出现的新功能。
相关生产实践引用参考:http://blog.51cto.com/ultrasql/1600372
相关参考:SQL Server扩展事件system_health会话总结
相关参考:http://www.mssqlmct.cn/t-sql/?post=95&tdsourcetag=s_pctim_aiomsg
【5】自定义跟踪死锁的扩展事件
【5.1】T-SQL实现
CREATE EVENT SESSION [DeadLock_test] ON SERVER ADD EVENT sqlserver.xml_deadlock_report ADD TARGET package0.event_file( SET filename=N'C:\sql_server\xe\DealLock_test.xel', max_file_size=(10), max_rollover_files=(4) --启用文件滚动存储的最大文件数 ) WITH (MAX_MEMORY=4096 KB, --最大内存EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,--事件保留模式:ALLOW_SINGLE_EVENT_LOSS/ALLOW_MULTIPLE_EVENT_LOSS/NO_EVENT_LOSSMAX_DISPATCH_LATENCY=30 SECONDS,--最大调度滞后事件,单位秒。0秒为无限制。MAX_EVENT_SIZE=0 KB, --最大事件大小MEMORY_PARTITION_MODE=NONE, --内存分区模式:无(NONE)/每个节点(PER_NODE)/每个cpu(PER_CPU)TRACK_CAUSALITY=OFF, --因果关系跟踪,跟踪事件彼此相关的方式STARTUP_STATE=ON --服务器启动时是否启动事件会话 ) GOALTER EVENT SESSION [DeadLock_test] ON SERVER STATE=START GO--查看 select * from sys.dm_xe_sessions
-- 扩展事件元数据信息
SELECT * FROM sys.dm_xe_packages
SELECT * FROM sys.dm_xe_objects
SELECT * FROM sys.dm_xe_map_values
SELECT * FROM sys.dm_xe_object_columns
SELECT * FROM sys.dm_xe_session_event_actions
SELECT * FROM sys.dm_xe_sessions
SELECT * FROM sys.dm_xe_session_events
SELECT * FROM sys.dm_xe_session_targets
SELECT * FROM sys.dm_xe_session_object_columns
-- 当前扩展事件信息
SELECT * FROM sys.server_event_notifications
SELECT * FROM sys.server_event_sessions
SELECT * FROM sys.server_event_session_events
SELECT * FROM sys.server_event_session_actions
SELECT * FROM sys.server_event_session_targets
SELECT * FROM sys.server_event_session_fields
SELECT * FROM master.sys.fn_MSxe_read_event_stream (N'deadlock*.xel', 1)
SELECT * FROM master.sys.fn_xe_file_target_read_file(N'deadlock*.xel', NULL, NULL, NULL)
SELECT object_name as event,convert(xml, event_data) as xml_data
FROM master.sys.fn_xe_file_target_read_file(N'D:\deadlock*.xel', NULL, NULL, NULL)
【5.2】基于SSMS的GUI实现
(1)实例-》管理-》扩展事件-》右击会话-》新建会话向导
(2)输入扩展事件会话名称 -》下一步
(3)不使用模板 -》下一步
(4)选择死锁事件 -》放到右边-》下一步
(5)捕获全局字段不填写-》下一步
(6)设置会话事件筛选器忽略 -》下一步
(7)保存到文件 -》下一步
(8)可以查看设置的摘要信息,以及生成脚本 -》完成
(9)查看创建脚本与启动,右击该会话-》启动会话。 脚本:右击该会话-》编写会话脚本为-》create
(10)模拟死锁后查看,双击会话名称打开如下图
【5.3】深入进阶
【5.3.1】Lock:Deadlock
这个事件可以用来验证死锁牺牲品。这个时间说明什么时候请求需要一个锁,但被取消作为一个死锁牺牲品
【5.3.2】Lock:Deadlock chain
这个事件类用于监控死锁状态。但存在一个死锁时该事件被处罚。
通过在实例级别监控这个事件,我们能够识别哪些对象处于死锁中,是否在应用程序中存在因死锁导致的性能问题。
【5.3.3】操作演示
管理-》扩展事件-》会话-》找到我们上面创建的 Deallock_monitor-》右击属性-》加上【5.3.1】~【5.3.2】的事件
再次尝试死锁测试,结果信息
转载于:https://www.cnblogs.com/gered/p/10969845.html
【监控笔记】【2.2】扩展事件——死锁监控相关推荐
- Windows事件日志监控
大多数数据泄露属内部人员而为,但各企业在监控内部网络活动方面仍存在不足. 无论是大型还是小型企业,监控内部网络活动已成为其主要要求.要保护网络安全以防范泄露和威胁,各企业需要采取积极的措施来保证其网络 ...
- sqlserver 扩展事件监控慢sql与阻塞sql,xml格式日志解析
零. 启用参数 SqlServer中默认blocked process收集是不开启的,可以通过以下sql查看,值为0表示未开启. exec sp_configure 'show advanced op ...
- Java分布式应用学习笔记08JMX规范与常用的监控场景
转自:Java分布式应用学习笔记08JMX规范与常用的监控场景 1. JMX规范 JMX是"Java管理扩展的"的缩写,它和其他JavaEE类似也是曾经的Sun提出的一种规范(规 ...
- 《手Q Android线程死锁监控与自动化分析实践》
一.问题背景 手Q每个版本上线以后研发同学都会收到各种问题反馈.在跟进手Q内部用户反馈的问题时,发现多例问题,其表象和原因如下: 1.问题表象:"未读不消失"."图片不展 ...
- scroll事件实现监控滚动条并分页显示示例(zepto.js)
scroll事件实现监控滚动条并分页显示示例(zepto.js ) 需求:在APP落地页上的底部位置显示此前其他用户的购买记录,要求此div盒子只显示3条半,但一页有10条,div内的滑动条滑到一页 ...
- 监听列表事件的监控核心技术(编写代码)
这一段代码是根据上一篇"监听列表事件的监控"所编写的,在onmousemove事件中,可以通过事件对象获取到鼠标当前的坐标点,我们该如何将坐标点转化成为元素的left和top属性值 ...
- sql server死锁_如何使用扩展事件和SQL Server代理自动执行SQL Server死锁收集过程
sql server死锁 介绍 (Introduction) This article is the last one of a series in which we discussed how to ...
- sql活动监视器 死锁_使用system_health扩展事件监视SQL Server死锁
sql活动监视器 死锁 Performance monitoring is a must to do the task for a DBA. You should ensure that the da ...
- 用 扩展事件抓取过去的死锁
用 扩展 事件 抓取 过去的死锁 DECLARE @SessionName SysName SELECT @SessionName = 'system_health'IF OBJECT_ID('te ...
- linux u盘插入事件,Linux 下监控USB设备拔插事件
Linux 下监控USB设备拔插事件 发布时间:2018-01-29 00:00, 浏览次数:1111 , 标签: Linux USB * 使用Netlink来实现 这是一个特殊的socket,可以接 ...
最新文章
- codevs 1002 搭桥
- 机器学习实验中的编程技术(part2)--numpy
- apache ignite_从In Memory Data Grid,Apache Ignite快速入门
- Unity3D-相关函数功能
- 微软再向开发者重申:UWP 是 PC 的最佳平台
- 面向对象(final/抽象类/接口/内部类)
- 面向对象的Oracle用法
- 与时间有关的10个短语
- android 编译c代码吗,在Android手机上编译C代码
- 【配送路径规划】基于matlab遗传算法求解单配送中心多客户多车辆最短路径规划问题【含Matlab源码 1602期】
- 高质量计算机学习网站
- Google浏览器Chrome,永久开启flash支持的办法
- html怎么设置border-radius,CSS border-radius 能做什么?
- [基础]tfcenter搭建个人服务器
- 图片转excel软件有哪些?这些软件你值得拥有
- 你有一份七夕赚钱指南等待签收
- Vue路由对象属性 .meta $route.matched
- [暑期实训] 任务记录 2021-06-29
- 博弈美业SAAS系统,美业系统源码-主要功能
- 一种繁体ppt转换简体的方法(简转繁同样适用)