查看事件会话数据

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

  • 查看目标数据

  • 处理数据

查看目标数据

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

查看目标数据

查看目标数据:

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

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

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

关于查看目标数据的注释:

  • 目标数据对于 ETW 目标不可用。

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

  • 对于 event_file 目标,请使用以下方法之一查看文件目标数据(.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 文件,方法是从“文件 -> 打开”菜单中选择“合并扩展事件文件”。

查看实时数据

您可以查看正在捕获的实时数据。

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

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

    默认显示 “事件名称”“时间戳”列。

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

    事件通常在大约 30 秒后显示。 如果要更改滞后期,可以在 “新建会话” 对话框的 “高级” 页中更改 “最大调度滞后时间”

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

刷新目标数据

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

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

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

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

处理数据

您可以使用扩展事件用户界面的分析能力找出问题。

“详细信息”窗格

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

创建、修改或删除合并列

合并列允许您将要显示的一组字段合并到一列中。 合并列将依据各字段添加到字段列表中的顺序从第一个非 NULL 字段开始显示数据。 这与在 SQL Server Profiler 中看到的类似,其中特定列可能会显示不同的数据,具体取决于事件 (最常见的示例是SQL Server Profiler) 中的 TextData 字段。 例如,您可以将 sql_statement_completed 事件中的 statement 字段和 sql_batch_completed 事件中的 batch_text 字段合并到名为 myStatement 的字段中。 在表中显示 myStatement 列时,它将显示所关联事件的相应数据。

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

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

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

若要创建合并列,请单击 “选择列” 对话框中的 “新建” 。 在 “新建合并列” 对话框中,为该合并列命名并选择要纳入合并列的原始列。

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

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

筛选结果

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

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

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

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

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

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

对结果排序

按升序或降序对结果排序:

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

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

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

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

对结果进行分组

分组结果等效于 Transact-SQL 中 子句的功能 GROUP BY 。 目标数据表将显示组合在一起的数据,允许您展开和折叠数据。

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

您可以按一列或多列对结果分组。

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

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

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

聚合结果

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

  • sum

  • 分钟

  • max

  • average

  • count

sum、min、max 和 average 只能用于数值列。 count 是组中所选列存在的非 null 值的数量。

由于聚合针对组执行,因此,您必须先对结果进行分组,然后才能执行聚合。 聚合结果:

  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 行。

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

查看死锁图和查询计划

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

  • query_post_compilation_showplan

  • query_pre_execution_showplan

  • query_post_execution_showplan

查看死锁图:

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

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

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

查看查询计划图:

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

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

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