SqlServer2005 性能调校之 利用Sql Server Profiler捕捉阻塞事件
在SQLServer2005之前,从不同的来源可以得到很多可用的脚本,来捕获哪些数据库进程产生阻塞以及哪些进程被阻塞。然而,这些脚本需要手工执行。sp_blocker就是一个实例。 然而,我们可以利用Sql Server Profiler ,来自动的捕获被阻塞的进程。要用Sql Server
在SQLServer2005之前,从不同的来源可以得到很多可用的脚本,来捕获哪些数据库进程产生阻塞以及哪些进程被阻塞。然而,这些脚本需要手工执行。sp_blocker就是一个实例。
然而,我们可以利用Sql Server Profiler ,香港虚拟主机,来自动的捕获被阻塞的进程。要用Sql Server Profiler捕获这些进程,我们需要用到Sql Server Profiler 的Blocked Process Report事件。
.Blocked Process Report:这表示一个任务被阻塞的时间已经超出了特定时间长度。这个事件类不包含系统任务或等待非死锁可检测(non-deadlock-detectable)资源的任务。
为了配置Sql Server Profiler,我们必须在SqlServer中为捕获阻塞事件配置一个阈值。
现在我通过一个例子来实现,利用Sql Profiler捕捉阻塞事件:
一.配置Blocked Process Report
1.打开Sql Server Profiler工具 如图:
2.新建跟踪 如图:
3.选择要跟踪的数据实例,如图:
4.选择跟踪模板,为空白,如图:
5.选择Blocked Process Report 事件,如图:
为了配置阈值及生产报表的频度,可使用sp_configure命令来配置Blocked Process Report选项,默认情况下是不产生阻塞进程报表的。在代码实例中,Blocked Process Report配置为5秒钟报告一次阻塞事件,香港空间,配置之后,再次执行sp_configure验证是否配置成功:
--首先执行以下语句配置 sp_configure ,1 GO RECONFIGURE GO sp_configure ,5 GO RECONFIGURE GO --然后再执行 sp_configure ,服务器空间