查看事件会话数据

本主题介绍如何使用显示用户界面查看和分析扩展事件数据:

  • 查看目标数据

  • 使用数据

查看目标数据

可以在 SQL Server Management Studio 中显示收集到指定目标中的数据。

查看目标数据

查看目标数据:

  1. 在对象资源管理器中,依次展开 管理扩展事件会话,然后选择一个会话。

  2. 右键单击目标名称,然后单击“ 查看目标数据 ”以显示目标数据。

    目标数据窗口显示在默认视图中,并显示目标数据。

有关查看目标数据的说明:

  • 目标数据不适用于 ETW 目标。

  • 若要查看 xml 格式的ring_buffer数据,请在目标数据窗口中单击 ring_buffer目标数据 链接。 ring_buffer.xml 文件显示在 xml 编辑器中。

  • 对于事件文件目标,使用以下任一方法查看文件目标数据(XEL 文件):

    • 使用文件 -> 在 SQL Server Management Studio 中打开。

    • 将文件拖放到 SQL Server Management Studio 中。

    • 双击 。XEL 文件。

    • 在 SQL Server Management Studio 中,右键单击正在运行的扩展事件会话,然后选择“查看目标数据”。

    • fn_xe_file_target_read_file

    • SQLServer.XEvent 模块中使用 Powershell Read-SQLXevent。

    • 使用 XELite NuGet 以编程方式处理 XEvents。

    • 可以通过从“文件 - 打开”菜单中选择“合并扩展事件文件”来查看多个 .XEL 文件。

观看实时数据

可以观看正在捕获的实时动态数据。

  • 在对象资源管理器中,展开 “管理”、“ 扩展事件”和“ 会话” 节点。

  • 右键单击会话名称,然后单击“ 监视实时数据 ”开始显示跟踪数据。

    默认显示列是 事件名称和TimeStamp

    若要向跟踪窗口添加其他列,请单击“扩展事件”工具栏上的“ 选择列 ”按钮。 “ 详细信息 ”选项卡显示所选事件的所有事件详细信息。

    事件通常以大约 30 秒为单位显示。 如果要更改延迟期,可以在“新建会话”对话框的“高级”页上更改“最大调度延迟”。

  • SqlServer.XEvent PowerShell 模块可以流式传输实时数据。

刷新目标数据

event_files目标不支持刷新目标数据:

  1. 若要自动刷新目标数据,请右键单击目标数据,选择“ 刷新间隔”,然后从间隔列表中选择刷新间隔。

  2. 若要暂停和恢复自动刷新,请右键单击目标数据,然后选择“ 暂停 ”或“ 继续”。

  3. 若要手动刷新目标数据,请右键单击目标数据,然后选择“ 刷新”。

处理数据

可以使用扩展事件用户界面的分析功能来识别问题。

“详细信息”窗格

详细信息”窗格显示所选事件的所有列,包括字段和操作。 可以通过右键单击 “详细信息 ”窗格中的行并选择“ 在表中显示列”,将列添加到目标数据表。

创建、修改或删除合并列

合并列可以让您将一组字段合并并显示在单个列中。 合并列将根据字段列表中字段添加的顺序,显示第一个非 NULL 字段的数据。 这类似于在 SQL Server Profiler 中看到的内容,其中特定列可能会根据事件显示不同的数据(最常见的示例是 SQL Server Profiler 中的 TextData 字段)。 例如,可以将语句和batch_text字段分别从sql_statement_completed和sql_batch_completed事件合并到名为 myStatement 的字段中。 在表中显示 myStatement 列时,它将显示关联事件的相应数据。

可以创建、修改或删除合并列:

  1. 打开一个XEL文件以查看跟踪结果。 (也可以右键单击会话名称,然后选择“ 观看实时数据”。

  2. 在跟踪结果窗口中,右键单击列标题,然后单击“ 选择列”。

若要创建合并列,请单击“选择列”对话框中的“新建”。 在“ 新建合并列 ”对话框中,命名合并列,然后选择要包含在合并列中的原始列。

若要编辑合并列,请在“ 选择列 ”对话框中选择合并列,然后单击“ 编辑”。 在 “编辑合并列 ”对话框中,重命名合并列或修改要包含在合并列中的原始列。

若要删除合并列,请在“ 选择列 ”对话框中选择合并列,然后单击“ 删除”。

筛选结果

可以查看跟踪结果,然后应用筛选器以缩小跟踪窗口中显示的跟踪结果的范围。 显示筛选器包括时间筛选器和高级筛选器。 使用时间筛选器按事件时间戳筛选跟踪结果,并使用高级筛选器根据事件字段和操作构造筛选条件。 时间与高级筛选器之间存在逻辑上的“与”关系。

若要创建筛选器,请执行以下操作:

  1. 打开一个XEL文件以查看跟踪结果。 (也可以右键单击会话名称,然后选择“ 观看实时数据”。

  2. 在“跟踪结果”窗口中,选择要筛选的结果,然后在 “扩展事件 ”工具栏上,单击“ 筛选器”。

  3. 在“ 筛选器 ”对话框中,选择“ 设置时间筛选器 ”,通过拖动滑块条或修改编辑框中的时间来设置时间筛选器。

  4. “其他筛选器 ”部分中,应用筛选条件,然后单击“ 应用”。

对结果进行排序

若要按升序或降序对结果进行排序:

  1. 打开一个XEL文件以查看跟踪结果。 (也可以右键单击会话名称,选择 “监视实时数据”,然后单击工具栏上的“ 停止数据馈送 ”按钮。

  2. 在跟踪结果窗口中,右键单击要排序的列标题,然后单击“ 升序 排序”或“ 降序排序”。

还可以单击列标题以反转排序顺序。

如果已对列进行分组,则对列进行排序只会对组中的数据进行排序。

小组结果

分组结果相当于在 Transact-SQL 中使用GROUP BY子句的功能。 目标数据表将显示分组在一起的数据,使你可以展开和折叠数据。

必须先对数据进行分组,然后才能对其进行聚合。 例如,可以按query_hash值分组,按持续时间排序,获取每个组的平均持续时间,然后对聚合进行降序排序。 这将生成一个列表,该列表显示从最长到最短的平均持续时间的唯一语句列表。 展开顶部组时,您将看到该特定查询的个别执行,排序从最长到最短。

可以按单个列或多列对结果进行分组。

打开一个XEL文件以查看跟踪结果。 (也可以右键单击会话名称,选择 “监视实时数据”,然后单击工具栏上的“ 停止数据馈送 ”按钮。

若要按单个列对结果进行分组,请右键单击跟踪结果窗口中的列标题,然后单击“ 按此列分组”。 若要撤消分组,请选择其中一行,然后单击“ 删除所有分组”。

若要按多个列对结果进行分组,请单击“扩展事件”工具栏上的“分组”按钮。 在“分组”对话框的“可用列”框中,选择要分组的列,并将其移动到“分组的列”框中。 若要更改“按列分组”框中的顺序,请单击向上或向下箭头。

聚合结果

可以查看跟踪结果,然后通过聚合结果中的列来进一步分析事件数据。 扩展事件支持五个聚合函数:

  • 总和

  • 分钟

  • 最大值

  • 平均

  • 计数

Sum、min、max 和 average 只能与数值列一起使用。 计数是指组中所选列中存在的非空值的数量。

聚合是在组上执行的,因此在执行聚合之前,必须先对结果进行分组。 聚合结果:

  1. 打开一个XEL文件以查看跟踪结果。 (也可以右键单击会话名称,选择 “监视实时数据”,然后单击工具栏上的“ 停止数据馈送 ”按钮。

  2. “扩展事件 ”工具栏上,单击“ 聚合 ”按钮。 “聚合”对话框将显示可用于聚合的列。

  3. “聚合类型” 列中,选择聚合类型。

  4. 在“ 按排序聚合 ”框中,选择排序列。 然后选择升序或降序。

在各列中搜索文本

可以在列中搜索文本:

  1. 打开一个XEL文件以查看跟踪结果。 (也可以右键单击会话名称,选择“ 监视实时数据”。

  2. 单击“扩展事件”工具栏上的“查找”。

  3. 扩展事件中查找对话框的查找内容框中,输入搜索文本。 可以从下拉列表中选择最后 20 个搜索字符串之一。

  4. 在“ 查找 ”框中,选择要搜索指定文本的位置。 使用以下选项进行搜索:

    • 表列。 使用此选项可在跟踪窗口中搜索所有可见列。

    • 详细信息。 使用此选项可在选择的跟踪窗口中搜索所有列(已升级和非提升),然后再打开“ 在扩展事件中查找 ”对话框。

    • Event_column_name。 使用此选项可从下拉列表中搜索特定事件列。

  5. 使用以下选项指定要如何定义搜索:

    • 匹配大小写。 使用此选项,可显示在“查找内容”框中输入的文本的搜索结果,该结果同时匹配内容和大小写。

    • 匹配整个单词。 使用此选项仅显示输入与完整单词匹配的文本的搜索结果。

    • 向上搜索。 使用此选项从光标位置搜索到结果的开头。

    • 用。 使用此选项可以解释在“查找内容”框中输入的特殊字符和正则表达式。 特殊字符包括通配符 \ 和 (?) 表示一个或多个字符。 正则表达式是用于定义搜索文本模式的特殊表示法。

    • 单击“ 查找下一步 ”,搜索在 “查找内容 ”框中输入的下一个文本。

书签

若要更轻松地返回到行,可以在目标数据中为一个或多个行添加书签。 右键单击某行可更改书签。 使用 扩展事件 工具栏上的上一个和下一个按钮导航到书签行。

更改显示设置

可以将列信息(列顺序、合并列和列宽)和跟踪结果的筛选信息保存到扩展事件显示设置文件(.viewsetting 文件)。 保存文件后,可将其应用于跟踪结果以更改视图。

若要更改显示设置,请执行以下作:

  1. 打开一个XEL文件以查看跟踪结果。 (也可以右键单击会话名称,选择“ 监视实时数据”。

  2. “扩展事件 ”工具栏上,选择“ 显示设置”。 从下拉列表中选择以下选项之一:

    • 另存为。 将跟踪结果的列和筛选信息保存到 .viewsetting 文件。

    • 打开。 打开现有的 .viewsetting 文件。

    • 打开最近的文件。 打开最近保存的 .viewsetting 文件。

复制或导出跟踪结果

可以将单元格、行和详细信息复制到跟踪结果中的选定行。 还可以将跟踪结果导出到以下:

  • .XEL 文件

  • 桌子

  • .CSV 文件

若要复制跟踪结果,请选择单元格、行或行,右键单击,选择“ 复制 ”,然后选择“ 单元格”、“ ”或 “详细信息”。 扩展事件最多支持复制 1000 行。

可以通过从 SQL Server Management Studio 中的扩展事件菜单选项中选择导出到,将跟踪结果导出到 .XEL 文件、表或 .CSV 文件。

查看死锁图形和查询计划

可以在“详细信息”窗格中查看 xml_deadlock_report 的死锁图,以帮助排查死锁问题。 还可以查看以下事件的查询计划图:

  • query_post_compilation_showplan

  • 预查询执行显示计划 (query_pre_execution_showplan)

  • 查询后执行显示计划

查看死锁图:

  • 在对象资源管理器中,展开 “管理”、“ 扩展事件”和“ 会话” 节点。

  • 右键单击包含要查看的已配置的死锁事件的会话,然后选择“ 监视实时数据”。

  • 选择死锁事件,并在“详细信息”窗格中的 “死锁 ”选项卡上查看图形。

若要查看查询计划图,请执行以下操作:

  1. 在对象资源管理器中,展开 “管理”、“ 扩展事件”和“ 会话” 节点。

  2. 右键单击包含要查看的查询计划图的会话(例如,query_post_compilation_showplan),然后选择“ 监视实时数据”。

  3. 选择查询计划图事件(例如,query_post_compilation_showplan),并在“详细信息”窗格中的 “查询计划 ”选项卡上查看图形。