云数据库 GaussDB-详解:执行信息
执行信息
在SQL调优过程中经常需要执行EXPLAIN ANALYZE或EXPLAIN PERFORMANCE查看SQL语句实际执行信息,通过对比实际执行与优化器的估算之间的差别来为优化提供依据。EXPLAIN PERFORMANCE相对于EXPLAIN ANALYZE增加了每个DN上的执行信息。
以如下SQL语句为例:
select count(1) from tb1;
执行EXPLAIN PERFORMANCE输出为:
图中显示执行信息分为以下7个部分
- 以表格的形式将计划显示出来,包含有11个字段,分别是:id、operation、A-time、A-rows、E-rows、E-distinct、Peak Memory、E-memory、A-width、E-width和E-costs。其中计划类字段(id、operation以及E开头字段)的含义与执行EXPLAIN时的含义一致,详见执行计划小节中的说明。A-time、A-rows、E-distinct、Peak Memory、A-width的含义说明如下:
- A-time:当前算子执行完成时间,一般DN上执行的算子的A-time是由[]括起来的两个值,分别表示此算子在所有DN上完成的最短时间和最长时间。
- A-rows:表示当前算子的实际输出元组数。
- E-distinct:表示hashjoin算子的distinct估计值。
- Peak Memory:此算子在每个DN上执行时使用的内存峰值。
- A-width:表示当前算子每行元组的实际宽度,仅对于重内存使用算子会显示,包括:(Vec)HashJoin、(Vec)HashAgg、(Vec) HashSetOp、(Vec)Sort、(Vec)Materialize算子等,其中(Vec)HashJoin计算的宽度是其右子树算子的宽度,会显示在其右子树上。
- Predicate Information (identified by plan id):
- Memory Information (identified by plan id):
这一部分显示的是整个计划中会将内存的使用情况打印出来的算子的内存使用信息,主要是Hash、Sort算子,包括算子峰值内存(peak memory),控制内存(control memory),估算内存使用(operator memory),执行时实际宽度(width),内存使用自动扩展次数(auto spread num),是否提前下盘(early spilled),以及下盘信息,包括重复下盘次数(spill Time(s)),内外表下盘分区数(inner/outer partition spill num),下盘文件数(temp file num),下盘数据量及最小和最大分区的下盘数据量(written disk IO [min, max] )。
- Targetlist Information (identified by plan id)
- DataNode Information (identified by plan id):
- User Define Profiling
- ====== Query Summary =====:
这一部分主要打印总的执行时间和网络流量,包括了各个DN上初始化和结束阶段的最大最小执行时间、CN上的初始化、执行、结束阶段的时间,以及当前语句执行时系统可用内存、语句估算内存等信息。
- A-rows和E-rows的差异体现了优化器估算和实际执行的偏差度。一般来说,偏差越大优化器生成的计划越不可信,人工干预调优的必要性越大。
- A-time中的两个值偏差越大,表明此算子的计算偏斜(在不同DN上执行时间差异)越大,人工干预调优的必要性越大。
- Max Query Peak Memory经常用来估算SQL语句耗费内存,也被用来作为SQL语句调优时运行态内存参数设置的重要依据。一般会以EXPLAIN ANALYZE或EXPLAIN PERFORMANCE的输出作为进一步调优的输入。
- GaussDB学习_gaussdb教程_高斯数据库学习_华为云
- GaussDB工具_gaussdb怎么读_高斯数据库工具_华为云
- GaussDB视频教程_gaussdb查看表结构语句_高斯数据库视频教程_华为云
- GaussDB培训_GaussDB教程_高斯数据库培训-华为云
- GaussDB连接_华为Gaussdb_高斯数据库连接_华为云
- GaussDB使用技巧_高斯数据库下载_高斯数据库使用技巧_华为云
- GaussDB数据库云备份_华为GaussDB_高斯数据库云备份
- GaussDB用法_GaussDB数据库使用方法_高斯数据库如何使用_华为云
- CDN 服务器_CDN哪家好_CDN详解
- GaussDB配额_GaussDB数据库配额_高斯数据库配额_华为云