二,如何监控和解决SQL Server的阻塞(2)(事件通知)
来源:互联网 发布:tk域名注册 编辑:程序博客网 时间:2024/05/17 01:34
何监控和解决SQL Server的阻塞(2)(事件通知)
- 如何监控和解决SQL Server的阻塞(1) : 点击打开链接
- 如何监控和解决SQL Server的阻塞(3)(扩展事件)点击打开链接
上篇介绍了什么是阻赛,以及如何察看"当前"的阻塞现象. 这篇我们详细谈一下如何去监控阻塞.
1. 什么是阻塞的厥值
随着系统用户数的增加,数据库访问连接也不断增加,数据库上可能的阻塞可能性也随之增加。 对于DBA来说,我们更加关注正在发生的阻塞是什么类型的,这个阻塞在什么情况下是不可以被企业用户所接受的。例如一个在线交易系统,用户在付款的时候被阻塞了5秒钟,那么5秒钟是不能被用户所接受的。而对于一个报表系统,5秒钟不算什么,可能阻塞事件超过3分钟,那么用户才会开始抱怨。这个用户忍耐的时间,我们称为厥值(Threshold).
2. 监控阻塞的厥值
2.1 监控的目的
当某个阻塞超过假定的厥值后,DBA收到通知。
2.2 如何设定阻塞的厥值
SQL 提供了一个服务器配置选项 blocked process threshold ,该选项用于指定阈值(以秒为单位),超过该阈值将生成阻塞的进程报告。可设置该阈值介于 0 到 86,400 之间。默认情况下,不生成阻塞的进程报告。对于系统任务或正在等待未生成可检测死锁的资源的任务,不生成该事件。可以定义一个生成该事件时执行的警报。例如,可以选择通知管理员采取相应的操作来处理阻塞情况。阻塞的进程阈值使用死锁监视器后台线程监视等待时间大于(或数倍于)配置的阈值的任务列表。每个报告间隔中,为每个阻塞的任务生成一次事件。已通过最大努力完成了阻塞的进程报告。不保证报表的数据始终为实时数据,也不保证报表数据接近实时。该设置立即生效,无需停止并重新启动服务器。引用:点击打开链接
开启服务器配置选项blocked process threshold ,设置厥值为5秒
2.2 设置事件通知 (Event Notification)
当开启Blocked process threshold后,SQL实例会自动收集超过厥值的阻赛时间,DBA所需要做的事情就是设置一个事件通知,例如:当厥值超过5秒后,发邮件通知自己,邮件内容包含阻赛的所有信息。
2.2.1 假设你有一个数据库叫做" DBA " ,首先设置Event Notification, 在DBA数据库下运行如下语句
2.2.2 创建一个阻塞表
2.2.3 创建一个存储过程,来告诉数据库当阻塞产生后需要干什么(例如:把阻塞信息存入BlockedProcessReports表,然后发邮件通知DBA)
2.2.4 将刚刚创建的存储过程添加入service broker queue
2.2.5 ProcessBlockProcessReports表的内容
Block的所有历史信息会以XML格式存入
- 二,如何监控和解决SQL Server的阻塞(2)(事件通知)
- 如何监控和解决SQL Server的阻塞(2)(事件通知)
- 如何监控和解决SQL Server的阻塞(3) (扩展事件)
- 三,如何监控和解决SQL Server的阻塞(3) (扩展事件)
- 如何监控和解决SQL Server的阻塞(1) (当前阻塞)
- 一,如何监控和解决SQL Server的阻塞(1) (当前阻塞)
- SQL Server 2005/2008 锁和阻塞的监控
- SQL Server 事件通知(Event notifications)
- SQL Server 的锁定和阻塞
- SQL Server 监控统计阻塞脚本信息
- SQL Server 监控统计阻塞脚本信息
- 了解和解决SQL Server 7.0 或2000 阻塞问题
- 如何检查SQL Server阻塞
- SQL Server 2008中新增的Service Broker事件通知
- 转帖(如何监控sql server 死锁)
- 如何监控sql server 死锁
- SQL Server进程阻塞的检查和解决办法
- SQL Server进程阻塞的检查和解决办法
- android判断手机是否有硬解码功能
- Apache中Httpd.conf详解
- opencv3编程入门学习笔记1-----基本图像容器Mat
- 自动更新
- 4. Median of Two Sorted Arrays
- 二,如何监控和解决SQL Server的阻塞(2)(事件通知)
- LintCode 创建最大数
- Qt用QCameraInfo获取摄像头个数
- xpath使用
- 设计模式之-组合模式
- phpstorm 创建php文件的默认注释
- iOS - 关于dispatch_sync(dispatch_get_main_queue(), ^{...;}); 死锁问题的解释
- grunt\angularjs
- c++ const int 和int 有什么区别,const的作用是什么。【by徐玉丽】