|
列 |
解释 |
|
|
ID |
计划的步骤,从00开始执行,如上图,最后一步是04 |
|
|
MOTION |
该步骤的执行结果的处理方式: RESULT:结果发送到客户端 GATHER:结果发送到汇总节点 REDIST(…):结果HASH重分布,括号中为计算HASH的列,如果超长则截断为两个点 NO REDIST:结果直接保存到对应的数据分片,不进行重分布 BROADCAST:结果拉复制表 RAND REDIST:结果随机分布到所有节点 SCALAR N:结果为标量,N为标量子查询的编号,如果条件中有引用,则使用&xNx&方式引用,例如:
|
|
|
OPERATION |
SCAN:单表扫描,并使用条件过滤数据; Table:单表,没有过滤条件; SubQueryN:子查询,N为自动编号; Step:使用前一个Step的结果; INNER/LEFT/FULL JOIN:连接操作; WHERE:子查询的WHERE条件; GROUP:分组操作; ORDER:排序操作; LIMIT:计算LIMIT,OFFSET; AGG:distinct,聚集操作; UNION/UNION ALL/MINUS/INTERSECT:UNION操作; 例如图中00的含义为: 第一个INNER JOIN的左边为第二个INNER JOIN; 第二个INNER JOIN的左边为date_dim,该表为复制表,有条件过滤; 第二个INNER JOIN的右边为salesreturns,其为子查询 Salesreturns子查询包含一个UNION ALL:为catelog_sa..与catelog_re..的UNION ALL; 第一个INNER JOIN的右边为catalog_page,该表为复制表; 第一个INNER JOIN结束后有一个GROUP操作; 对于每个步骤(ID列不为空的为一个步骤)OPERATION每层有1个空格的缩进。 |
|
|
TABLE |
OPERATION涉及到的表,只显示别名和属性,超长截断为两个点; HASH分布表:中括号中显示HASH列; 复制表:显示[REP]; 随机分布表:显示[DIS]; 子查询:OPERATION列显示SubQueryN,其中N为数字,用来区分不同的子查询; 某个步骤的结果:OPERATION列显示为Step,本列显示为<N>其中N为用到的步骤的第一列ID,表示该步骤的结果; 例如: 图中ID为03的步骤是一个汇总步骤,源表为x子查询; x子查询为一个UNION,涉及到ssr,csr,wsr; ssr,csr,wsr都是子查询,分别来自02,00,01的结果进行GROUP BY; |
|
|
CONDITION |
显示操作的条件,例如FILTER的单表条件,JOIN的连接条件,GROUP BY,ORDER BY,LIMIT的内容。 如果某个条件可能使用索引,会在有索引的列后进行标注,例如: WHERE t1.a{S} > 10 表示可能使用t1.a的智能(Smart)索引 WHERE t1.a{H} = 10 表示可能使用t1.a的HASH索引 WHERE t1.a{H}= t2.b 表示可能使用t1.a的HASH索引 WHERE t1.a{H} = t2.b{H}表示可能使用t1.a和t2.b的HASH索引 WHERE contains(t1.a{F}…) 表示可能使用t1.a的全文(Full Text)索引 只有物理表的单列包含索引, 物理表单列的>,<,>=,<=,=可能使用智能索引 物理表单列的=可能使用HASH索引,包括等于常量和等值JOIN 物理表的contains函数可能使用全文索引 |
|
|
ROW,WIDTH,COST (TOTAL) |
显示代价评估的内容,分别为该步骤结果的条数,行宽,该步骤的代价,总体代价。 其中代价不包括结果进行数据移动的代价。 图中的值不是真实数据,仅供参考。 当某些表或者列缺少统计信息时,则不会显示代价相关的内容,而显示缺少哪些表或列的统计信息,如下:
|




