查看 SQL 分析报告

最近更新时间:2025-10-14 16:19:32

我的收藏
分析报告可以精确描述 SQL 在分析引擎中执行的详细信息,用以分析有关 SQL 执行耗时的具体问题。本文将详细介绍 SQL 分析报告中各字段的含义。

查看 SQL 分析报告

1. 登录 MySQL 控制台,在实例列表,单击实例 ID操作列的管理,进入实例详情页面。
2. 选择慢 SQL 明细页,然后在列表中找到对应的慢 SQL,在其 SQL 分析报告列单击生成分析报告
3. 生成分析报告需要约5分钟时间,待生成完毕后,单击下载分析报告,即可将分析报告下载到本地。
说明:
请使用 Chrome 或 Firefox 高版本浏览器打开。
4. 下载分析报告后,需进行解压,解压后请打开 index.html 文件,随后即可在浏览器中查看 SQL 分析报告详情。

分析报告详情

SQL 分析报告分为三个部分:
性能总览:展示执行的 SQL 语句及相关基本信息。
执行计划:展示 SQL 执行计划的预估行数、真实返回行数等关键指标。
算子执行时间分布:展示执行计划中各算子所使用的 CPU 时间,用于评估执行性能。

性能总览


性能总览部分包含以下三部分信息:
基础信息和时间总览:包含实例 ID、执行的节点 ID、内部追踪的 Trace ID 以及执行流程的各种指标。
SQL 语句文本:展示本次执行的完整 SQL 语句(最大保存长度4MB,超限自动截断)。
表结构信息:默认折叠显示,单击可展开本次查询涉及的所有表结构。
基础信息和时间总览

基础信息包含用户的实例 ID、节点 ID 和内部追踪的 Trace ID。
分析引擎在收到用户 SQL 后,会对 SQL 进行词法和语法解析,然后编译成计划树,最终根据统计信息来对计划树进行优化以获得最终的执行计划。在总览中对应的时间分别为:
总时间:SQL 执行全流程耗时。
解析时间:SQL 词法/语法解析耗时。
编译时间:SQL 编译为计划树的耗时。
优化时间:基于统计信息的执行计划优化耗时。

执行计划


执行计划展示当前 SQL 的详细执行计划树结构,包含以下五个核心组成部分:
算子 ID:算子 ID 是计划树的基础标识。每个 SQL 语句都会被解析成一个由多个算子组成的计划树。算子 ID 采用“算子类型_唯一 ID”的格式(例如:FILTER_14),为树中的每个算子节点提供唯一身份标识。
预估行数:算子预估行数是优化器在制定执行计划时的重要参考。基于表统计信息和索引情况,优化器会预测每个算子可能输出的数据行数。需要注意的是,由于数据分布的复杂性,这个预估值有时会与实际结果存在差异。
实际行数:当查询真正执行后,可通过此数值记录该算子实际处理的数据行数,反映了查询执行过程中真实的数据处理量。比较预估行数和实际行数,能帮助理解优化器的决策准确性。
实际数据量:实际数据量表示算子输出的物理数据大小,通常以字节为单位。它由实际行数和每行数据的平均大小共同决定,可更全面地了解数据处理过程中的资源消耗与实际数据量。
算子详细信息:每个算子都有其独特的算子详细信息。这部分内容因算子类型而异。

算子执行时间分布

在分析 SQL 执行性能时,算子执行时间分布图提供了关键视角。您可以清晰看到每个算子消耗的 CPU 时间片占比。通过观察不同色块的面积大小,您可以直观定位到整个执行计划中最耗时的算子。

当您将鼠标悬停在具体算子的色块区域时,系统会浮现出详细的信息卡片。这张卡片包含三个核心维度:
算子 ID:精确标识当前算子的身份(例如:Join_5)。
CPU 时间片值:显示该算子实际占用的 CPU 时间(单位为纳秒ns)。
时间片占比:以百分比形式呈现该算子在总耗时中的权重。