鸿 网 互 联 www.68idc.cn

当前位置 : 服务器租用 > 软件教程 > 编程开发 > >

Sql Server 2012的扩展事件详细使用图文教程

来源:互联网 作者:佚名 时间:2015-03-25 09:50
在SQLSERVER2012之前,扩展事件的所有操作只能用TSQL或C#代码来实现

在SQLSERVER2012之前,扩展事件的所有操作只能用TSQL或C#代码来实现

在SQLSERVER2012之前,扩展事件的所有操作只能用TSQL或C#代码来实现

现在SQLSERVER2012就方便多了,有了新的GUI,趋向于傻瓜了,对我来讲是好事o(∩_∩)o 哈哈

趁机学习一下扩展事件

简单介绍

首先打开SQLSERVER2012的SSMS,依次点击打开管理-》扩展事件-》会话

Sql Server 2012的扩展事件详细使用图文教程

在会话文件夹中,点击右键-》可以新建会话/新建会话向导

在已有的会话中,点击右键-》启动会话、新建会话、导出会话、删除、属性

Sql Server 2012的扩展事件详细使用图文教程

这些菜单已经很丰富了

点击-》新建会话向导 ,SQLSERVER会一步一步引导您怎麽新建一个会话

包括设置会话熟悉感、选择模板、选择要捕获的事件、选择要捕获的全局字段、设置事件会话筛选器、指定会话数据存储

Sql Server 2012的扩展事件详细使用图文教程

这个向导我就不介绍了,我们一般都不喜欢用傻瓜的向导,生怕漏了什么东西没有设置

其实大家看到向导中要设置的步骤:选择模板、设置事件会话筛选器、选择要捕获的全局字段,有没有觉得和SQLSERVER PROFILER差不多的感觉

Sql Server 2012的扩展事件详细使用图文教程

Sql Server 2012的扩展事件详细使用图文教程

建立会话

我们新建一个会话

弹出 新建会话 对话框

Sql Server 2012的扩展事件详细使用图文教程

左边有常规、事件、数据存储、高级这些tab页

等一下会陆续介绍

常规页面

输入会话名称

Sql Server 2012的扩展事件详细使用图文教程

在sql profiler里面就是输入跟踪名称

Sql Server 2012的扩展事件详细使用图文教程

下面有一些选项,例如在服务器启动时启动事件会话,你可以根据自己实际情况进行勾选

Sql Server 2012的扩展事件详细使用图文教程

大家知道开启sql profiler会对SQLSERVER的性能造成影响

那么,从下面的“在服务器启动时启动事件会话”

这里告诉我们两个信息

信息一:自动化程度高了,以往我们都是重启服务器就需要自己手动打开sql profiler来重新跟踪SQLSERVER的事件,现在有这个选项就方便多了

不用手动打开扩展事件

信息二:扩展事件对SQLSERVER的性能损耗不大

在园子里的燕洋天大侠的文章大话扩展事件第一篇:概述(上)里提到:

扩展事件的出现与设计主要是以性能为主要的出发点

我们可以使用一个文件目标对象在相关的时间发生之后将信息写入到文件中,这样就非常的轻量级了,并且可以精确到事件发生点

我们在会话名称里输入“blogtest”

Sql Server 2012的扩展事件详细使用图文教程

会话中也提供了很多模板给我们使用

就像sql profiler里面

Sql Server 2012的扩展事件详细使用图文教程

在文章扩展事件在Denali CTP3里的新UI(一)中也说了

我们支持与Profiler里模板类似的概念,只要选择一个模板,Event(包括Action和Predicate)和Target以及某些选项就自动选择好了

但是在CTP3里只有一个Standard模板,这个模板所选择的事件和Profiler里的Standard模板相对应

你也可以把自己创建的Session作为模板保存起来以备后用,保存模板只需要右键点击某个Session然后选择Export Session…即可

因为那篇文章出来的时候SQLSERVER2012也只是CTP3的阶段,所以那时候只有一个标准模板,现在SQLSERVER2012出来了

已经多了很多模板了

Sql Server 2012的扩展事件详细使用图文教程

导出会话就相当于导出模板了

Sql Server 2012的扩展事件详细使用图文教程

sql profiler里导出模板

Sql Server 2012的扩展事件详细使用图文教程

导入会话模板

在新建会话对话框里选择模板的下拉列表有一个  <从文件...>

Sql Server 2012的扩展事件详细使用图文教程

Sql Server 2012的扩展事件详细使用图文教程

事件页面

事件页面是最复杂的,你首先看到它分为左右两部分,左边是事件库,所有在SQL Server里注册的扩展事件都列在这里,右边是你选择的事件。

Sql Server 2012的扩展事件详细使用图文教程

在选择事件的时候,你可以点击名称列表头,进行事件名称的首字母进行顺序或者倒序排序,

类别和通道也是可以排序的

事件的类别非常多,包括cdc功能的事务日志扫描、死锁监视、高度可用性和数据的安全性(High Availability and Disaster Recovery,HADR)、垃圾回收等等

Sql Server 2012的扩展事件详细使用图文教程

Sql Server 2012的扩展事件详细使用图文教程

事件过滤,比如我在在事件库的输入框里输入sql_,所有名字含有sql_字样的事件都被列了出来并且高亮显示

Sql Server 2012的扩展事件详细使用图文教程

过滤也可以按照事件名称和说明、仅事件字段、全部来进行过滤

Sql Server 2012的扩展事件详细使用图文教程

类别和通道的类似于EXCEL的列筛选

Sql Server 2012的扩展事件详细使用图文教程

Sql Server 2012的扩展事件详细使用图文教程

我们选择sql_statement_starting和sql_statement_completed事件

Sql Server 2012的扩展事件详细使用图文教程

Sql Server 2012的扩展事件详细使用图文教程

点击所选事件页面右上方的配置按钮,页面将会滑动

Sql Server 2012的扩展事件详细使用图文教程

配置事件页面

你可以点击“选择”返回刚才的事件库页面

你会看到闪电和漏斗图标分别出现在了右边配置页面的全局字段(操作)标签和筛选器(谓词)标签上

Sql Server 2012的扩展事件详细使用图文教程

Sql Server 2012的扩展事件详细使用图文教程

Sql Server 2012的扩展事件详细使用图文教程

Sql Server 2012的扩展事件详细使用图文教程

Sql Server 2012的扩展事件详细使用图文教程

闪电代表的是该事件上有多少Global Fields(Actions)关联

漏斗代表该事件有没有Filter(Predicate)关联

SQLSERVER Profiler里每个事件都含有EventSequence列,而在XEvent里则被作为Action来实现了。

Sql Server 2012的扩展事件详细使用图文教程

Predicate可以减少不必要的事件收集,比如我可以配置sql_statement_starting事件的Predicate为database_name=’Northwind’,

那么发生在其他数据库的sql_statement_starting事件就不会被该Session所收集,Profiler可以为所有事件设置一个Column Filter,

而XEvent支持为每个Event设置各自独立不同的Predicate

Sql Server 2012的扩展事件详细使用图文教程

事件字段(Event Fields)标签列出所有该Event的列,某些Event会把一些开销比较大的列作为可选的列,你可以点击前面的CheckBox选择是否收集该列数据,

比如sql_statement_starting的statement列就可以被取消选择。

Sql Server 2012的扩展事件详细使用图文教程

你可以同时选择多个事件并选择/取消全局字段(操作)或配置筛选器(谓词)

在这里我们为sql_statement_starting和sql_statement_completed事件,在全局字段(操作)里选择database_name

Sql Server 2012的扩展事件详细使用图文教程

不添加谓词并保持事件字段为默认值。

完成之后在闪电和漏斗列会显示相应的动作和谓词的数量

如果配置谓词错误,在漏斗列会显示 打叉

Sql Server 2012的扩展事件详细使用图文教程

我们删除子句就可以了

Sql Server 2012的扩展事件详细使用图文教程

配置完毕之后,会看到sql_statement_starting(事件)和sql_statement_completed(事件)后面的闪电图标列有一个动作与之关联

Sql Server 2012的扩展事件详细使用图文教程

数据存储页面

在这个页面里可以选择为Session添加不同的目标(Target)


Sql Server 2012的扩展事件详细使用图文教程


Sql Server 2012的扩展事件详细使用图文教程

这里我们选择event_file 目标并保持默认配置

Sql Server 2012的扩展事件详细使用图文教程

高级页面

Sql Server 2012的扩展事件详细使用图文教程

高级页面可以设置控制会话行为的高级选项,有一个选项需要特别注意,”最大调度滞后时间(Maximum dispatch latency)”

它描述了事件从被触发到写入到Target最长的等待时间,默认值是30秒,如果你使用和SQLSERVER Profiler client-side tracing

类似的Live Monitoring功能,你可能会希望把它改小,这样事件被触发后可以尽快地显示在SSMS里,

但需要注意到的是改小它会增加SQL Server的开销,这里我们把它改成5秒

完成创建

点击“确定”完成事件会话的创建

Sql Server 2012的扩展事件详细使用图文教程

blogtest 会话将会被创建成功并显示在Object Explorer里

在会话被创建后,你可以在Object Explorer里右键点击该Session并选择属性,这将打开和创建会话相同的对话框,进行修改后点击确定即可。

Sql Server 2012的扩展事件详细使用图文教程

Sql Server 2012的扩展事件详细使用图文教程

如果你想查看怎麽用TSQL语句的方式能创建刚才blogtest事件会话,可以用编写脚本的方式

Sql Server 2012的扩展事件详细使用图文教程

网友评论
<