云数据库 MySQL 查看 SQL 分析报告

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

相关产品
云数据库 MySQL 产品页,含版本规格、价格与购买入口。

一、查看 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)。

·时间片占比:以百分比形式呈现该算子在总耗时中的权重。

赞 (0)
上一篇 4天前
下一篇 4天前