Sql Server Profiler转换为扩展事件

前言

Sql Server 2008 开始有扩展事件功能,到 sqlserver 2012 开始,扩展事件有了UI可视化界面操作。在我跟很多客户的工程师(开发,DBA,运维都有)交流过后,发现很少有人喜欢使用扩展事件。我想这是有原因的:首先扩展事件看起来操作更麻烦,建立一个新的事件会话比原来更复杂。其次更重要的是扩展事件没法实时的跟踪语句,会有一段时间的延迟(1分钟左右)

但是扩展事件更轻量,对系统开销更小,并且可以收集更多的信息。以后肯定是会用到越来越普遍的。今天主要分享怎么把profile直接转换为扩展事件,让很多习惯语句使用profiler的同学可以很轻松就转变过来.

正文

创建proflier

首先创建一个profiler。选择好对应的事件并设置好筛选条件
Sql Server Profiler转换为扩展事件_第1张图片

转换为扩展事件
查询出来创建proflier使用的trace id. 可以通过开始和停止profiler,来确定对应的ID
Sql Server Profiler转换为扩展事件_第2张图片

这里借用的是Jonathan Kehayias 提供的脚本,需要的同学可以去下面链接下载

Jonathan Kehayias提供的转换脚本
执行下面的语句,traceid是刚才查询出来的,owentest是自己给扩展事件取的名字
后面2个选项默认。

sp_SQLskills_ConvertTraceToExtendedEvents  
    @TraceID =3,
    @SessionName='owentest',
    @PrintOutput  = 1,
    @Execute  = 0

就能够生成创建事件会话的TSQL 语句。执行生成的TSQL语句。

使用创建的会话
找到新建的事件会话并启动
Sql Server Profiler转换为扩展事件_第3张图片
查看实时的监控数据
Sql Server Profiler转换为扩展事件_第4张图片
默认只有如下2个列
Sql Server Profiler转换为扩展事件_第5张图片

可以通过选择,来添加需要的列
Sql Server Profiler转换为扩展事件_第6张图片
Sql Server Profiler转换为扩展事件_第7张图片
选择后的样子
Sql Server Profiler转换为扩展事件_第8张图片

总结

总的来讲,通过一个存储过程可以很轻松的把proflier转换为扩展事件。而且扩展事件慢慢的也会越来越易用。扩展事件是实例级别的。每个连到数据库上的人都可以看,这是proflier没有的。

你可能感兴趣的:(SQL,SERVER,性能调优,系统运维)