概述
执行计划(Execution Plan)是数据库在执行SQL查询时内部生成的执行策略,它描述了SQL在数据库内部是如何一步一步执行的,是诊断SQL性能问题和调优的重要依据。随着SQL变得越来越复杂,依赖纯文本的执行计划分析阅读难度大,难以把握整体执行计划、定位关键路径及瓶颈,给DBA的性能优化工作带来很大挑战。
执行计划可视化工具直观地将执行计划以树状形式呈现,清晰展示SQL的内部执行步骤,同时整合多方面信息进行综合分析。这样可以极大地提高DBA读懂和分析执行计划的效率,快速定位性能瓶颈,针对SQL或索引进行精准优化。
开源数据库虽然用户量巨大,但是执行计划可视化的工具却很少,特别是缺少MySQL的执行计划可视化工具。本文将介绍PawSQL的执行计划可视化工具PawSQL Plan Visualizer(PPV)如何支持MySQL的执行计划可视化。
PawSQL Plan Visualizer(PPV)
PawSQL的执行计划可视化工具PawSQL Plan Visualizer(PPV)是基于开源组件pev/pev2开发的一个SQL执行计划可视化工具。它的主要功能包括:
-
支持多种数据库,包括MySQL/PostgreSQL/openGauss/Oracle等
-
支持多种输入,譬如MySQL的json/tree/analyze格式,Oracle的表单格式
-
交互式分析,基于执行时间、代价、行数的高亮展示
-
基于数据库对象和算子的Metrics统计
PPV对于MySQL的支持
支持版本及格式
MySQL版本 | 支持的输入格式 | 展示信息 |
---|---|---|
大于等于5.6,小于8.0.16 | format=json | 估算的代价/行数 |
大于等于8.0.16, 小于8.0.18 | format=json/format=tree | 估算的代价/行数 |
大于等于8.0.18 | format=json/format=tree/analyze | 实际执行时间/实际的行数/估算的代价/估算的行数 |
创建MySQL可视化执行计划
通过将MySQL执行计划的输出文本提交到PawSQL Plan Visualizer,PawSQL以树形的结构清晰展示执行计划。
算子右上角用各类图标对一些问题进行提示,如耗时比较长、估算代价高、执行计划预估和实际执行条数出现较大偏差等,通过这些提示,DBA 就能很方便地定位问题并进行细节排查。
交互式问题定位及性能分析
-
点击头部概要信息,快速定位执行最耗时或是代价最大节点;
-
每个算子点击展开后,会显示其具体的耗时、条数及其他信息;
-
点击时间、代价、行数时,以进度条的形式展示各个节点的占比情况。
基于对象和算子的统计分析
页面右侧有基于对象(表/索引)以及执行计划中的算子进行的统计分析,包括执行时间、估算代价等。
与PawSQL优化功能的集成
对于进行了性能验证的优化任务,PawSQL会获取优化前后的执行计划,并借助PPV对优化前后的执行计划进行可视化的对比。
关于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://www.pawsql.com
邮件:service@pawsql.com
Twitter: https://twitter.com/pawsql
关注PawSQL公众号