跳到主要内容

执行计划可视化

概述

执行计划(Execution Plan)是数据库在执行SQL查询时内部生成的执行策略,它描述了SQL在数据库内部是如何一步一步执行的,是进行诊断SQL性能问题和进行调优的重要依据。随着数据库应用处理复杂度的提高,SQL执行计划也随着SQL也变得越来越复杂。依赖纯文本的执行计划分析阅读难度大,难以把握整体执行计划、定位关键路径及瓶颈,给DBA的性能优化工作带来很大挑战。

执行计划可视化工具直观地将执行计划以流程图形式呈现,清晰展示计划结构,使用视觉元素突出显示关键操作和路径,同时关联SQL语句源码,整合多方面信息进行综合分析。这样可以极大地提高DBA读懂和分析执行计划的效率,快速定位性能瓶颈,针对SQL或索引进行精准优化。

各个商业数据库通常会开发自己的执行计划可视化工具,以帮助数据库使用人员理解SQL是如何执行的,并快速定位SQL的性能问题。而开源数据库虽然用户量巨大,但是执行计划可视化的工具确很少。特别是目前市场上还没有合适的针对MySQL的执行计划可视化工具。

PawSQL Plan Visualizer(PPV)

PawSQL的执行计划可视化工具PawSQL Plan Visualizer(PPV)是基于开源组件pev/pev2开发的一个SQL执行计划可视化工具。它的主要功能包括:

  1. 支持多种数据库,包括MySQL/PostgreSQL/openGauss/Oracle等
  2. 支持多种输入,譬如MySQL的json/tree/analyze格式,Oracle的表单格式
  3. 交互式分析,基于执行时间、代价、行数的高亮展示
  4. 基于数据库对象和算子的Metrics统计

PawEV对于MySQL的支持

支持版本及格式

MySQL版本支持的输入格式展示信息
大于等于5.6,小于8.0.16format=json估算的代价/行数
大于等于8.0.16, 小于8.0.18format=json/format=tree估算的代价/行数
大于等于8.0.18format=json/format=tree/analyze实际执行时间/实际的行数/估算的代价/估算的行数

创建可视化执行计划

通过将MySQL执行计划的文本输出提交到PawSQL Plan Visualizer,PawSQL以树形的结构清晰展示执行计划。

算子右上角用各类图标对一些问题进行提示,如耗时比较长、估算代价高、执行计划预估和实际执行条数出现较大偏差等,通过这些提示,DBA 就能很方便地定位问题模块进行细节排查。

img

交互式分析

  • 点击头部概要信息,快速定位执行最耗时或是代价最大节点
  • 每个算子点击展开后,会显示其具体的耗时、条数及其他信息。
  • 点击时间、代价、行数时,以进度条的形式展示各个节点的占比情况

img

基于对象和算子的统计

頁面右侧有基于对象(表/索引)以及执行计划中的算子进行的统计分析,包括执行时间、估算代价等。

img

与优化功能的集成

对于选择性能验证的优化任务,PawSQL会获取优化前后的执行计划,并借助PEV对优化前后的执行计划进行可视化的对比。

img

关于PawSQL

PawSQL专注数据库性能优化的自动化和智能化,支持MySQL,PostgreSQL,openGauss,Oracle等,提供的SQL优化产品包括

  • PawSQL Cloud,在线自动化SQL优化工具,支持SQL审查,智能查询重写、基于代价的索引推荐,适用于数据库管理员及数据应用开发人员,
  • PawSQL Advisor,IntelliJ 插件, 适用于数据应用开发人员,可以IDEA/DataGrip应用市场通过名称搜索“PawSQL Advisor”安装。
  • PawSQL Engine, 是PawSQL系列产品的后端优化引擎,可以以docker镜像的方式独立安装部署,并通过http/json的接口提供SQL优化服务。

联系我们

网址: https://docs.pawsql.com

邮件:service@pawsql.com

Twitter: https://twitter.com/pawsql

扫描关注PawSQL公众号dd