在 SQL Server Management Studio 中查看事件数据
适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例
本文介绍如何使用 SQL Server Management Studio (SSMS) 查看扩展事件的目标数据。 本文说明了如何:
- 以各种方式打开并查看目标数据。
- 使用扩展事件的专用菜单或工具栏将目标数据导出为各种格式。
- 查看时或在导出前对数据进行操作。 可以查看、导出、筛选和聚合事件数据。
先决条件
本文假定你已了解如何创建和启动事件会话。 有关如何创建事件会话的说明之前在下面的文章中已演示:
建议使用最新版本的 SSMS。 从下载 SQL Server Management Studio (SSMS) 处下载软件。
与 Azure SQL 数据库之间的差异
SQL Server 和 Azure SQL 数据库中的扩展事件之间存在某些差异。
- Azure SQL 数据库的
event_file
目标不能是本地驱动器上的文件。 而必须是 Azure 存储容器。 当连接到 Azure SQL 数据库中的数据库时,SSMS UI 将寻求存储容器,而不是本地路径和文件名称。 - SSMS UI 中禁用查看实时数据。 这是因为 Azure SQL 数据库不提供此功能。
- 一些扩展事件会话与 SQL Server 一同安装,例如
system_health
会话。 Azure SQL 数据库不提供这些会话。
本文是从 SQL Server 的角度来撰写的。 本文使用的是 event_file
目标,SQL Server 和 Azure SQL 数据库的扩展事件中直接实施此目标。
有关特定于 Azure SQL 数据库的扩展事件的文档,请参阅 Azure SQL 数据库中的扩展事件。
打开 SSMS 事件查看器 UI
可以通过以下方法之一访问 SSMS 事件查看器 UI:
- 主菜单文件>打开>文件,然后浏览找到
xel
文件。 - 在“对象资源管理器”的>“管理”中,右键单击“扩展事件”。
- 扩展事件菜单,和扩展事件工具栏
- 在显示目标数据的选项卡式窗格中右键单击
在 SSMS 中查看 event_file 数据
可通过多种方式在 SSMS UI 中查看 event_file
目标数据。 指定 event_file
目标时,可以设置其文件路径和名称,包括 xel
扩展名。
- 每次启动事件会话时,扩展事件都会向文件名添加数字后缀,让文件名是唯一的。
- 示例:Checkpoint_Begins_ES_0_131103935140400000.xel
xel
文件是二进制文件。 不应在文本编辑器(如记事本)中打开此类文件。- 使用“文件>打开>合并扩展事件文件”对话框,在 SSMS 事件查看器 UI 中打开多个事件文件。
SSMS 可以显示大多数扩展事件目标的数据。 但是对于不同的目标显示也有所不同: 例如:
- event_file:event_file 目标的数据显示在事件查看器中,提供筛选、聚合以及其他功能。
- ring_buffer: 来自 ring-buffer 目标的数据显示为 XML 文件。
SSMS 不能显示来自 etw_classic_sync_target
目标的数据。
使用“文件 > 打开 > 文件”,打开 xel 文件
可以使用“文件>打开>文件”,从 SSMS 主菜单打开单个 xel
文件。 还可以将 xel
文件拖放到 SSMS 中。
查看目标数据
查看目标数据 选项显示到目前为止已捕获的数据。 在“对象资源管理器”中,可以展开节点,然后右键单击:
- “管理”>“扩展事件”>“会话”>“[your-session]”>“[your-target-node]”>“查看目标数据”。
目标数据显示在 SSMS 中的选项卡式窗格中,如下所示:
注意
“查看目标数据”显示与会话关联的所有 xel
文件中的数据。 每个“启动-停止”周期都将创建一个文件,并且在文件名中添加由时间转换而来的数值,但是每个文件共享相同的根名称。 当文件大小超出 MAX_FILE_SIZE
参数所指定的最大文件大小时,还会创建滚动更新 xel
文件。
查看实时数据
当事件会话处于运行状态时,你可能想要在目标接收数据的同时查看实时的事件数据。
- “管理”>“扩展事件”>“会话”>“[your-session]”>“查看实时数据”。
数据显示按你指定的时间间隔更新。 请在以下位置查看 最大调度滞后时间 :
- “扩展事件”>“会话”>“[your-session]”>“属性”>“高级”>“最大调度滞后时间”
使用 sys.fn_xe_file_target_read_file() 函数查看事件数据
sys.fn_xe_file_target_read_file() 函数可返回代表捕获的事件的每一行的行集。 事件数据以 XML 形式返回。 XQuery 可用于呈现事件数据的关系。
导出目标数据
在 SSMS 事件查看器中显示事件数据后,可以通过执行以下操作将其导出为各种格式:
- 在主菜单上选择“扩展事件”。
- 选择“导出为”,然后选择一种格式。
操作显示中的数据
SSMS UI 提供了几种方式来操作数据,而不只是查看数据。
数据显示中的上下文菜单
右键单击时,数据显示中的不同位置的上下文菜单各不相同。
右键单击某个数据单元格。
以下屏幕截图显示右键单击数据显示中的单元格时获得的内容菜单。 该屏幕截图中还显示了“复制”菜单项的扩展项。
右键单击列标题
以下屏幕截图显示右键单击“时间戳”标题时获得的上下文菜单。
选择列,合并列
可以使用“选择列”选项控制哪些数据列显示,哪些不显示。 你可以在不同位置找到“选择列”菜单项:
- 在“扩展事件”菜单中。
- 在“扩展事件”工具栏上。
- 在数据显示的标题的上下文菜单中。
选择“选择列”后,将显示相同名称的对话框。
合并列
“选择列”对话框中有一部分专门用于将多个列合并为一个列,以用于显示和数据导出。
筛选器
SSMS 事件查看器中的筛选器具有以下功能:
- 按时间戳列限制返回的数据
- 按列值进行筛选
时间筛选器和列筛选器的关系是布尔 AND
。
分组和聚合
通过匹配指定列的值将行组合在一起是对数据进行聚合的第一步。
分组
在“扩展事件”工具栏中,“分组”按钮可启动一个对话框,你可以在该对话框中按给定的列对显示数据进行分组。 下面的屏幕截图显示了按“名称”列进行分组的对话框。
完成分组后,将以新的方式显示,如下所示。
聚合
在对显示数据进行分组后,可以继续使用其他列对数据进行聚合。 以下屏幕截图显示了按“计数”对分组数据进行聚合。
完成聚合后,将以新的方式显示,如下所示。
查看运行时查询计划
query_post_execution_showplan
事件让你可以在 SSMS UI 中查看实际的查询计划(其中包含运行时统计信息)。 当显示“详细信息”窗格时,可以在“查询计划”选项卡中看到查询计划图。将鼠标悬停在查询计划的一个计划节点上方时,可以看到该节点的属性名称及其值的列表。