当前位置: 首页 > news >正文

SQLServer死锁监测方案:如何使用XE.Core解析xel文件里包含死锁扩展事件的死锁xml

1.处理流程

对于SQLServer死锁监测的方式,最终选用的方案是自定义的死锁扩展事件在生成本地xel文件,直接对xel文件解析。SQLServer自带两个dll可用于解析xel文件,编程语言选用C#,死锁扩展事件的名为 xml_deadlock_report。解析时需考虑版本问题,SQLServer2008版本需要xel,xem文件。

两个DLL: Microsoft.SqlServer.XE.Core.dll, Microsoft.SqlServer.XEvent.Linq.dll

  1. 抛弃SQLServer自带的system_health,完全自定义新的死锁扩展事件,system_health包含扩展事件太多,解析耗费时间长,且文件很大。
  2. 抛弃使用sys.fn_xe_file_target_read_file查询死锁xml的方式,当有xel文件,却仍旧依赖数据库查询获取xml不值得,希望与数据库查询隔离。

2.两种SQLServer版本代码解析示例

2008版本的处理代码,需要xel和xem文件一起解析,xem也是需要指定生成的

			try{using (QueryableXEventData events = new QueryableXEventData(new string[]{ @"D:\xxxx_0_134010006262980000.xel"},new string[]{ @"D:\xxxx_0_134010006262980000.xem"})){int count = 0  ;foreach (PublishedEvent evt in events){if (evt.Name == "xml_deadlock_report"){string timeStamp = evt.Timestamp.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss");string deadlockXml = evt.Fields["xml_report"].Value.ToString();}}}}catch (Exception ex){}

2008版本以上的,直接解析xel

			try{using (QueryableXEventData events = new QueryableXEventData(@"D:\xxxx_0_134010006262980000.xel")){int count = 0  ;foreach (PublishedEvent evt in events){if (evt.Name == "xml_deadlock_report"){string timeStamp = evt.Timestamp.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss");string deadlockXml = evt.Fields["xml_report"].Value.ToString();}}}}catch (Exception ex){}
http://www.xdnf.cn/news/1470601.html

相关文章:

  • LightDock.server liunx 双跑比较
  • 消息队列-ubutu22.04环境下安装
  • 激光雷达与IMU时间硬件同步与软件同步区分
  • 深度学习之第八课迁移学习(残差网络ResNet)
  • ChartGPT深度体验:AI图表生成工具如何高效实现数据可视化与图表美化?
  • RequestContextFilter介绍
  • 53.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--新增功能--集成短信发送功能
  • 《C++变量命名与占位:深入探究》
  • SDRAM详细分析—06 存储单元架构和放大器
  • RPC内核细节(转载)
  • 软件设计模式之单例模式
  • 实战:Android 自定义菊花加载框(带超时自动消失)
  • 微型导轨如何实现智能化控制?
  • 9.5 面向对象-原型和原型链
  • 【Linux】Linux 的 cp -a 命令的作用
  • 2025高教社数学建模国赛B题 - 碳化硅外延层厚度的确定(完整参考论文)
  • Overleaf教程+Latex教程
  • Anaconda下载安装及详细配置的保姆级教程【Windows系统】
  • excel里面店铺这一列的数据结构是2C【uniteasone17】这种,我想只保留前面的2C部分,后面的【uniteasone17】不要
  • MySQL 8.0.36 主从复制完整实验
  • S32K3平台ADC 应用说明
  • 无人机RTK模块技术要点与难点
  • GEO排名优化:迈向个性化与语义化搜索时代的智能策略
  • VMwaer虚拟机安装完Centos后无法联网问题
  • SQL时间过滤神器:DATE_SUB+between实战指南,告别硬编码日期!
  • React 组件基础与事件处理
  • 04 - 【HTML】- 常用标签(下篇)
  • Windows环境下实现GitLab与Gitee仓库代码提交隔离
  • 今天一天三面,明天加油DW!!!
  • Linux文件描述符详解