查看事件会话数据

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

  • 查看目标数据

  • 处理数据

查看目标数据

您可以在 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

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

查看实时数据

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

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

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

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

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

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

刷新目标数据

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

  • min

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

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

查看死锁图和查询计划

可以查看“详细信息”窗格中的 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)并在“详细信息”窗格的**“查询计划”**选项卡查看相关图形。