查询配置文件

你可以使用查询配置文件来可视化查询执行的详细信息。 查询配置文件可帮助你解决查询执行期间的性能瓶颈问题。 例如:

  • 可以可视化每个查询运算符和相关指标,例如所花费的时间、已处理的行数、已处理的行数和内存消耗量。
  • 你可以一目了然地确定查询执行中最慢的部分,并评估修改对查询造成的影响。
  • 你可以发现和解决 SQL 语句中的常见错误,例如分解联接或全表扫描。

要求

若要查看查询配置文件,必须是查询的所有者,或者必须至少对执行查询的 SQL 仓库具有 CAN MONITOR 权限

查看查询概要

可以使用以下步骤从查询历史记录中查看查询配置文件:

  1. 单击“历史记录”图标。边栏中的查询历史记录

  2. 单击查询的名称。 查询详细信息面板显示在屏幕右侧。

    查询执行摘要简单视图

    查询摘要包括:

    • 查询状态: 查询已标记其当前状态: 已排队正在运行已完成失败已取消
    • 用户和计算详细信息: 请参阅此查询运行的用户名、计算类型和运行时详细信息。
    • ID: 这是与给定查询执行关联的通用唯一标识符(UUID)。
    • 查询语句: 本部分包括完整的查询语句。 如果查询太长而无法显示在预览中,请单击 ...。查看全文的更多行
    • 查询指标: 查询分析的常用指标显示在查询文本下。 带有某些指标的筛选器图标表示扫描期间修剪的数据百分比。
    • 请参阅查询配置文件: 此摘要中显示了查询配置文件定向无环图(DAG)的预览。 这有助于快速估算查询复杂性和执行流。 单击“ 查看查询配置文件 ”打开详细的 DAG。
    • 查看此查询的最长运算符: 单击此按钮可打开 顶部运算符 面板。 此面板显示查询中运行时间最长的运算符。
    • 查询时钟持续时间:计划开始和查询执行结束之间的总运行时间作为摘要提供。 计划、查询优化和文件修剪的详细细分,以及执行时间,显示在摘要下方。
    • 查询源: 单击列出的对象的名称以转到查询源。
    • 聚合任务时间: 查看跨所有节点的所有核心执行查询所花费的总时间。 如果并行执行多个任务,则持续时间可能明显长于挂钟持续时间。 如果任务等待可用节点,则持续时间可能比挂钟持续时间要短。
    • 输入/输出(IO): 查看查询执行期间读取和写入的数据的详细信息。
  3. 单击“查看查询配置文件”。 “ 详细信息 ”面板将在屏幕右侧打开。

    查询档案详细信息。

    注意

    如果显示“查询配置文件不可用”,则此查询没有可用的配置文件。 查询配置文件不可用于从查询缓存运行的查询。 要绕过查询缓存,请对查询进行细微的更改,例如更改或删除 LIMIT

查看查询配置文件详细信息

详细的查询概要包括面板左侧的摘要指标和右侧运算符的图示视图。

探索查询指标

查询简介的左侧包括以下选项卡:

  1. 详细信息图标 详细信息:打开“ 详细信息 ”面板,其中显示了 查询摘要指标

  2. 顶部运算符图标 顶部运算符:打开顶部运算符面板,该面板显示查询中使用的最耗费资源的运算符。 这可用于识别优化机会。

  3. 查询文本图标 查询文本: 打开显示查询全文的 查询文本 面板。

注意

某些非 Photon 操作以组的形式执行并共享公共指标。 在这种情况下,所有操作的值都与给定指标的父运算符相同。

浏览 DAG

查询配置文件的右半部分显示查询的有向无环图 (DAG)。 图形视图显示指标,例如“花费的时间”、“内存峰值”和“行”。 单击每个指标可更改显示的报告指标。

可以通过以下方式与 DAG 进行交互:

  • 使用搜索栏突出显示不同的运算符或列。
  • 放大或缩小对 DAG 不同部分的焦点。
  • 单击运算符可显示详细的指标和说明。 图表右侧的面板显示操作详情。

对于 Databricks SQL 查询,还可以在 Apache Spark UI 中查看查询配置文件。 单击 Kebab 菜单图标。 页面顶部附近的 kebab 菜单,然后单击 “在 Spark UI 中打开”。

默认情况下,某些操作的指标处于隐藏状态。 因为这些操作不太可能导致性能瓶颈。 若要查看所有操作的信息并查看其他指标,请单击页面顶部的Kebab 菜单图标,然后单击启用详细模式

常见操作

最常见的操作是:

  • 扫描:从数据源读取数据并作为行输出。
  • 联接:来自多个关系的行被组合(交错)成一组行。
  • 联合:来自使用相同模式的多个关系的行被连接成一组行。
  • 随机:数据被重新分配或重新分区。 随机操作在资源方面是昂贵的,因为它们在群集上的执行程序之间移动数据。
  • 哈希/排序:行按键分组,并使用聚合函数(如每个组中的 SUMCOUNT)进行评估。
  • 筛选器:根据条件(例如 子句)筛选输入,并返回行的子集。

共享查询配置文件

要与其他用户共享查询配置文件:

  1. 查看查询历史记录
  2. 单击查询的名称。
  3. 要共享查询,你有两种选择:
    • 如果其他用户对查询具有“可管理”权限,你可以与他们共享查询配置文件的 URL。 单击“共享”。 URL 将复制到剪贴板。
    • 如果其他用户没有“可管理”权限或不是工作区的成员,你可以将查询配置文件下载为 JSON 对象。 下载。 JSON 文件将下载到你的本地系统。

导入查询配置文件

要导入查询配置文件的 JSON:

  1. 查看查询历史记录

  2. 在右上角单击kebab 菜单图标,然后选择导入查询配置文件 (JSON)

  3. 在文件浏览器中,选择与你共享的 JSON 文件,然后单击“打开”。 上传 JSON 文件并显示查询配置文件。

    当你导入查询配置文件时,它会动态加载到你的浏览器会话中,并且不会保留在你的工作区中。 每次要查看时都需要重新导入。

  4. 若要关闭导入的查询配置文件,请单击页面顶部的“X”。

访问查询配置文件

还可以在 UI 的以下部分访问查询配置文件:

  • 在 SQL 编辑器中:执行查询期间和之后,页面底部附近的链接显示已用时间和返回的行数。 单击该链接可打开 查询详细信息 面板。 单击“查看查询配置文件”

    从编辑器输出打开查询历史记录

    注意

    如果启用了 新的 SQL 编辑器 (公共预览版),链接会显示在笔记本中。

  • 从笔记本:如果笔记本附加到 SQL 仓库或无服务器计算,则可以使用包含查询的单元格下的链接访问查询配置文件。 单击“查看性能打开运行历史记录。 单击某个语句以打开 查询详细信息 面板。

    打开查询历史记录笔记本输出

  • 在 Lakeflow 声明性管道 UI 中:可以从管道 UI 中的 “查询历史记录 ”选项卡访问查询历史记录和配置文件。 请参阅 Lakeflow 声明性管道的访问查询历史记录

  • 从作业 UI:可以访问 SQL 仓库和无服务器计算上运行的作业的查询配置文件。 有关在无服务器计算上运行的作业,请参阅 查看作业运行的查询详细信息 ,了解如何在作业 UI 中查看查询详细信息。

后续步骤