手机版

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

时间:2021-08-01 来源:互联网 编辑:宝哥软件园 浏览:

类型:编程工具大小:4.9M语言:中文评分:1.6标签:现在下载在SQLSERVER2012之前,扩展事件的所有操作只能通过TSQL或C#代码来实现

现在SQLSERVER2012方便多了。有了新的GUI,趋向于傻子,对我来说是好事o(_)o哈哈

抓住机会了解更多的活动

简介

首先,打开SQLSERVER2012的SSMS,然后单击打开管理->扩展事件->会话

在会话文件夹中,右键单击->创建新会话/创建新会话向导

在现有会话中,右键单击->启动会话,创建新会话,导出会话,删除,属性。

这些菜单已经非常丰富了

单击->新建会话向导,SQLSERVER将逐步指导您如何创建新会话

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

我就不介绍这个指南了。我们通常不喜欢使用傻瓜指南,因为害怕错过一些东西而没有设置它

事实上,您可以在向导中看到要设置的步骤:选择模板、设置事件会话过滤器和选择要捕获的全局字段。你觉得自己和SQLSERVER PROFILER相似吗

建立会话

让我们创建一个新会话

弹出新会话对话框

在左侧,有选项卡页面,如常规、事件、数据存储和高级

稍后我们将一个接一个地介绍它们

常规页面

输入会话名称

在sql事件探查器中输入跟踪名称

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

大家都知道打开sql profiler会影响SQLSERVER的性能

然后,当服务器在下面启动时,启动事件会话

这里告诉我们两条信息

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

不需要手动打开扩展事件

信息2:扩展事件导致的SQLSERVER性能损失较小

在《颜园中豪杰》一文中,第一篇《扩建事件:概述(一)》提到:

扩展事件的外观和设计主要基于性能

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

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

还提供了许多模板供我们在会话中使用

就像在sql事件探查器中一样

在Denali CTP3中文章扩展事件的新UI (I)中也是这么说的

我们支持类似于Profiler中模板的概念。只要您选择一个模板,事件(包括动作和谓词),目标和一些选项将被自动选择

但是,CTP3中只有一个标准模板,该模板选择的事件对应于Profiler中的标准模板

您也可以将创建的会话保存为模板,以供以后使用。要保存模板,只需右键单击会话并选择导出会话。

因为文章出来的时候SQLSERVER2012只是CTP3阶段,当时只有一个标准模板,现在SQLSERVER2012已经出来了

已经有很多模板了

导出会话相当于导出模板

在sql事件探查器中导出模板

导入会话模板

在“新建会话”对话框中选择模板的下拉列表中,有一个来自的文件.

事件页面

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

选择事件时,您可以单击名称列表的标题,将事件名称的首字母按顺序或反向排序。

类别和频道也可以排序

事件有很多种,包括事务日志扫描、死锁监控、高可用性和灾难恢复(HADR)、垃圾收集等等

事件过滤,例如,当我在事件库的输入框中输入sql_时,所有名称包含sql_的事件都会被列出并高亮显示

您还可以按事件名称和描述、仅事件字段和全部进行筛选

类别和频道的类似EXCEL的列过滤

我们选择SQL _语句_开始和SQL _语句_完成事件

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

配置事件页面

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

您将看到闪电和漏斗图标分别出现在右侧配置页面的全局字段(操作)选项卡和过滤器(谓词)选项卡上

闪电表示有多少全局字段(动作)与事件相关联

漏斗指示事件是否与过滤器(谓词)相关联

SQLSERVER Profiler中的每个事件都包含一个EventSequence列,该列在XEvent中实现为一个Action。

谓词可以减少不必要的事件收集。例如,我可以将sql_statement_starting事件的预测配置为database_name='Northwind '。

那么在其他数据库中发生的sql_statement_starting事件将不会被此会话收集,探查器可以为所有事件设置列筛选器。

XEvent支持为每个事件设置独立且不同的谓词

“事件字段”选项卡列出了事件的所有列,一些事件会将一些开销较大的列作为可选列。您可以点击前面的CheckBox来选择是否收集该列的数据。

例如,可以取消选择sql_statement_starting的语句列。

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

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

不要添加谓词,将事件字段保留为默认值。

完成后,相应操作和谓词的数量将显示在闪电和漏斗列中

如果配置谓词错误,漏斗列中将显示一个叉号

我们可以删除这个条款

配置后,您将看到一个与sql_statement_starting(事件)和sql_statement_completed(事件)后面的闪电图标条相关联的操作

数据存储页

在此页面中,您可以选择为会话添加不同的目标

在这里,我们选择event_file目标并保留默认配置

高级页面

可以在高级页面上设置控制会话行为的高级选项,其中一个选项需要特别注意,“最大调度延迟”

它描述了事件从被触发到写入目标的最长等待时间。默认值为30秒。如果使用SQL Server事件探查器客户端跟踪,

与实时监控功能类似,您可能希望将其变小,以便事件在被触发后尽快在SSMS显示。

但是需要注意的是,减少它会增加SQL Server的开销。这里我们把它改为5秒

完成创作

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

博客测试会话将成功创建并显示在对象资源管理器中

创建会话后,可以在对象资源管理器中右键单击该会话,然后选择属性。这将打开与创建会话相同的对话框,并在修改后单击确定。

如果您想了解如何使用TSQL语句创建blogtest事件会话,可以使用script方法。

1 CREATE EVENT SESSION[blog test]ON SERVER 2 ADD EVENT SQL SERVER . SQL _ statement _ completed(SET collect _ statement=(1)3 ACTION(SQL SERVER . database _ name)),4 ADD EVENT SQL SERVER . SQL _ statement _ starting(5 ACTION(SQL SERVER . database _ name))6 ADD TARGET package 0 . EVENT _ file(SET filename=N ' d 3360 \ Program Files \ Microsoft SQL SERVER \ MSSQL l11。SQL 2012 \ MSSQL \ Log \ blogtest . xel ')7 WITH(MAX _ MEMORY=4096 KB,EVENT _ RETENTION _ MODE=ALLOW _ SINGLE _ EVENT _ LOSS,MAX_DISPATCH_LATENCY=5秒,MAX_EVENT_SIZE=0 KB,MEMORY_PARTITION_MODE=NONE,TRACK _ infinitiative=OFF,STARTUP_STATE=OFF)8 GO

开始会话并监控

开始会话

监控实时数据

当您单击“监控实时数据”按钮时,将创建一个新窗口

运行后,事件数量不断增加

我们停止谈话

但是SQLSERVER似乎有问题

我以为SQLSERVER会删除blogtest会话,然后我刷新了会话节点,但没有删除它。这个地方好像SQLSERVER有一些bug。

或者我自己的操作不正确

Xel文件

我们来看看d: \程序文件\微软SQL server \ MSSQL 11 . SQL 2012 \ MSSQL \日志

我刚刚停止了会话并重新启动了它,因此将生成两个blogtest xel文件

这里需要注意的是,在刚才的数据存储页面中,默认设置值为:勾选启用文件滚动更新,最大文件数设置为5

这与SQL错误日志相同。当blogtest会话生成的xel文件数达到5时,最早的xel文件将被删除

然后生成一个新的xel文件

SQL ERRORLOG也是滚动更新的,这里就不详细描述了~

安装SQLSERVER时创建了system_health xel文件

系统健康扩展事件会话

这个会话起源于产品支持团队的想法,它可以跟踪通常用于调试客户系统的信息

(例如,当客户系统死锁或发生其他严重错误时)

此会话是作为SQL Server 2008实例安装过程的一部分创建和启动的

它跟踪环形缓冲区中的事件,因此不会消耗太多内存。

SQL Server 2008使用扩展事件进行高级故障排除

我们用editplus打开它,发现它都是二进制的,我还以为是XML格式的

检查收集的xel文件

如果你想查看一个晚上收集的xel文件,你可以把xel文件拖到SSMS

上面的blogtest _ 0 _ 13031588189800000 . xel总共收集了474个事件

但是,扩展事件的文件名似乎没有规律性。如果有人给你一个xel文件,让你分析,比如下面这个,你只能从文件名知道是2013年16日收集的事件信息

让我们看看扩展事件的结构

当您单击加号时,您将在活动会话下看到一个包。

我们右键单击以查看目标数据

将弹出一个新窗口

上面弹出的新窗口显示了以下五个xel文件的所有事件,因此不必逐个将每个文件拖到SSMS,更不用说打开文件资源管理器了

如果您不相信,您可以将这五个xel文件拖到SSMS,并将它们相加,看看它们是否与包中的事件数量相同

摘要

本文简要介绍了扩展事件的创建和一些概念,下一篇文章将继续讨论如何使用扩展事件显示和分析数据

将尝试查找平均工作负载成本最高的查询

个人感觉扩展事件真的很类似于SQL profiler

SQL事件探查器将跟踪的事件写入trc文件

扩展事件将事件信息写入xel文件

监控实时数据相当于在SQL事件探查器中开始跟踪,只是一个在SQL事件探查器软件中查看跟踪的事件,而另一个则直接在SSMS查看事件

我认为扩展事件就像将SQL profiler集成到SSMS一样。当然,扩展事件的机制不同于SQL事件探查器

版权声明:Sql Server 2012扩展事件使用详细图形教程是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。

相关文章推荐