附录 4

附录 4 执行计划操作符

操作符名称 参数说明 操作说明
AAGR2 grp_num:分组项个数 简单聚集。如果没有分组,则直接计算集函数
sfun_num:返回上层操作符的集函数个数
distinct_flag:集函数参数是否去重
slave_empty:是否限制MPP从节点向主节点传送数据,或本地并行的从线程向主线程传送数据。取值:0:不限制;1:不允许MPP从节点向主节点传送数据;2:不允许本地并行的从线程向主线程传送数据
dist_arg_opt参数:标记是否做distinct优化(分组项+该distinct参数 刚好组成aagr/sagr使用索引的前导列,那么计算该参数的dist时无需使用hash表,直接相邻行比较即可(分组项组内参数已有序)),dist_arg_opt(a1,a2,...an),a对应每个distinct参数,取值0代表此distinct参数不优化计算,反之则为1
ACTRL 无参数 使用自适应计划机制时,控制备用计划转换
AFUN afun_num:分析函数个数 分析函数计算
partition_num:分区项个数
[colnamelist]:分区项
order_num:排序项个数
[colnamelist]:排序项
ASCN tabname:表的别名 数组当作表来扫描
used_in_sss3:是否出现在sss3(subquery set search,子查询集合查找)指令中。值为TRUE时,则每次扫描都重新开始
ASSERT assert_condition:触发断言的布尔表达式条件 约束检查
BLKUP2 idxname(tabname) :索引名(表名) 定位查找
BMAND 无参数 位图索引的与运算
BMCNT is_match_out:是否直接根据孩子节点的MATCH-COUNT值计算COUNT(*) 位图索引的行数计算
BMCVT 无参数 位图索引的ROWID转换
BMMG 无参数 位图索引归并
BMOR 无参数 位图索引的或运算
BMSEK scan_type:扫描类型 位图索引的范围查找
idxname(tabname) :索引名(表名)
scan_range:扫描范围
CONST VALUE LIST row_num:常量列表行数 常量列表
col_num:常量列表列数
CONSTC N_PRE_VAR:复合索引跳跃扫描中跳跃扫描的索引前导列个数 用于复合索引跳跃扫描
(out_var):外部var变量序列
CSCN2 idxname(tabname) :索引名(表名) 聚集索引扫描
NEED_SLCT(TRUE):是否进行过滤条件下推的优化
btr_scan:等于1表示使用B树扫描,等于0表示使用簇游标扫描
SAMPLE标记:用于标记节点上是否存在sample表达式,存在则带有此标记,否则无
CSEK2 scan_type:扫描类型 聚集索引数据定位
idxname(tabname) :索引名(表名)
scan_range:扫描范围
CTE_SCN exp_num:映射列数 递归WITH查询
(queryname):查询名
CTNS idxname(tabname) :索引名(表名) 用于实现全文索引的CONTAINS
KEY:全文索引的关键词
DELETE (partition_type):分区类型,取值:Vertical Partition:垂直分区;Horizon Partition:水平分区;为空表示不分区 删除数据
table:表名或视图名,“-”表示空,使用远程操作时会增加“@”+“dblink连接名”作为后缀
type:删除类型,取值:SELECT、CURSOR
mpp_opt:是否通过发送整个计划实现对MPP处理的优化
hp_opt:是否进行分区列等值过滤优化
DELETE_REMOTE (partition_type):分区类型,取值:Vertical Partition:垂直分区;Horizon Partition:水平分区;为空表示不分区 DBLINK删除操作
table:表名或视图名,“-”表示空,使用远程操作时会增加“@”+“dblink连接名”作为后缀
type:删除类型,取值:SELECT、CURSOR
mpp_opt:是否通过发送整个计划实现对MPP处理的优化
hp_opt:是否进行分区列等值过滤优化
DISTINCT keys:MPP模式下需要分发的列的信息(仅在MPP模式下生效) 去重
L_FULL_OPT_SEMI标记:semi半连接支持l_full优化
L_FULL_OPT_ANTISEMI标记:anti semi连接支持l_full优化
L_FULL_OPT_JOIN标记:其他非semi连接支持l_full优化
DSCN idxname(tabname) :索引名(表名) 动态视图表扫描
DSSEK scan_type:扫描类型 DISTINCT列上索引跳跃扫描(单列索引或复合索引)
idxname(tabname) :索引名(表名)
scan_range:扫描范围
ESCN 无参数 外部表扫描
EXCEPT 无参数 集合的差运算,且取差集后删除重复项
EXCEPT ALL 无参数 集合的差运算,且取差集后不删除重复项
EHFD mpp_opt:数据操作方式,1:数据直接发送给BP端进行删除;0:通过SP端分发 DPC下事务型HUGE表的数据删除
EHFI (tabname):表名 DPC下事务型HUGE表的数据插入
mpp_opt:数据操作方式,1:数据直接发送给BP端进行插入;0:通过SP端分发
EHFINS (tabname):表名 DPC下非事务型HUGE表的数据插入
mpp_opt:数据操作方式,1:数据直接发送给BP端进行插入;0:通过SP端分发
EHFU mpp_opt:数据操作方式,1:数据直接发送给BP端进行更新;0:通过SP端分发 DPC下事务型HUGE表的数据更新
ERECV stask_no:自身所处的子任务的序号,-1表示root子任务 DPC下用于接收数据,和ESEND对应
l_stask_no:孩子子计划的序号
n_keys:归并排序的key的个数
in_turn:是否按照顺序接收各个发送端的数据
trig:是否在IDU(增删改操作)上存在触发器
PV_FLAG:为1时开启限流,严格一发一收
topN标记:存在此标记则代表erecv节点上含有top语句
ESEND stask_no:自身所处的子任务的序号,-1表示root子任务 DPC下用于发送数据,和ERECV对应
type:发送类型,用于确定基于何种数据特征对数据进行分发。详细介绍请参考《DM8分布计算集群》5.4小节“数据交换与数据迭代操作符”
sites:站点的RAFT ID和并行度值,“-”表示空。例如(1:3,2:4)表示RAFT ID 1的并行度为3,RAFT ID 2的并行度为4
sql_invoke:当前子任务是否包含了含sql的函数调用
pwj_opt:是否使用了分区智能连接(Partition Wise Join)优化
table:表名,“-”表示空,不为空时表示按照该表的分区定义进行数据分发
empty_type:当哈希连接相关优化的分发计算无合适接收端时的处理策略,取值:INIT:未指定策略,效果等同于ERROR;PRUNE:直接抛弃;ANY:给任意线程处理;ERROR:报错;NOT_EMPTY:通知所有线程右孩子不为空集
keys:表的分发列(仅当table不为空时显示)
INFO_BITS:相关优化信息的标志位,6个标志位自低向高含义如下:bit0:是否在哈希连接左表为广播数据时共享哈希表;bit1:是否使用UNIONALL优化;bit2:是否选择开始执行任务;bit3:是否进行链路发送优化;bit4:是否进行归并排序的链路发送优化;bit5:用于指示当前ESEND发送的目标进行归并排序
PV_FLAG:为1时开启限流,严格一发一收
PI标记:存在此标记则代表esend是并行插入的esend
FAGR2 sfun_num:返回上层操作符的集函数个数 快速聚集,如果没有where条件,且取count(*), 或者基于索引的MAX/MIN值,则可以快速取得集函数的值
idxname:索引名
FILL BTR index_id:用于填充B树的索引ID 填充B树
FTTS for_mdis:是否从MPP DISTRIBUTE获得数据 MPP\LPQ下,对临时表的优化
GI policy:指示表的数据访问粒度,各个取值和含义请参考《DM8分布计算集群》中5.4小节“数据交换与数据迭代操作符” Granule Iterator,在DMDPC集群中,控制各工作线程的数据访问粒度和分区表裁剪
gi_unit:当前GI迭代器控制的数据扫描操作符起止序号
scan_type[0]:扫描相关信息,格式为:[扫描类型,反向扫描信息(可选),末尾KEY优化信息(可选)]
dynamic_pll:是否包含动态裁剪
has_hp_col_filter标记:用于标记下放是否包含有slct, 且slct仅包含范围分区列的过滤(is_hp_col_filter == TRUE)。has_hp_col_filter(n)中的n表示GI节点下所有叶子操作符属性has_hp_col_filter==TRUE的数目
GSEK idxname(tabname) :索引名(表名) 空间索引查询
HAGR2 grp_num:分组项个数 HASH分组,并计算集函数
sfun_num:返回上层操作符的集函数个数
distinct_flag:集函数参数是否去重
top_num:是否只返回前N组
slave_empty:是否限制MPP从节点向主节点传送数据,或本地并行的从线程向主线程传送数据。取值:0:不限制;1:不允许MPP从节点向主节点传送数据;2:不允许本地并行的从线程向主线程传送数据
keys:分组项
real_keys:依赖分组优化中实际使用的分组列
HASH FULL JOIN2 key_num:等值连接条件数 HASH全外连接
mix_aggr:是否将分组操作下放到此步骤进行,仅支持COUNT和SUM函数
mix_dist:是否存在对分组操作和哈希左外连接的优化(即把分组操作下放到哈希左外连接中)
join_condition:连接条件
KEY:等值连接条件
flt_batch_exec标记:节点上是否存在filter的批量指令,存在则为flt_batch_exec(1),否则为flt_batch_exec(0)
HASH LEFT JOIN2 key_num:等值连接条件数 HASH左外连接
partition_keys_num:paritition outer join的KEY个数
ret_null:是否仅返回未匹配的行
mix:需要计算的单个右表列的COUNT函数个数
join_condition:连接条件
KEY:等值连接条件
flt_batch_exec标记:节点上是否存在filter的批量指令,存在则为flt_batch_exec(1),否则为flt_batch_exec(0)
HASH LEFT SEMI JOIN12 (ANTI):是否为反连接 HASH左半连接,其与HASH LEFT_SEMI_JOIN2的区别是该计划为semi join with rowid key,后者是semi join with exp key
join_condition:连接条件
HASH LEFT SEMI JOIN2 (ANTI):是否为反连接 HASH左半连接
key_num:等值连接条件数
join_condition:连接条件
KEY:等值连接条件
KEY_NULL_EQU:连接列的NULL值比较策略。取值:0:NULL与NULL不相等;1:NULL与NULL相等。例如:(0,1,0)表示第1个和第3个连接条件中NULL值视为不等,第2个连接条件中NULL值视为相等
flt_batch_exec标记:节点上是否存在filter的批量指令,存在则为flt_batch_exec(1),否则为flt_batch_exec(0)
HASH LEFT SEMI MULTIPLE JOIN (ANTI):是否为反连接 多列NOT IN
join_condition:连接条件
HASH RIGHT JOIN2 key_num:等值连接条件数 HASH右外连接
ret_null:是否仅返回未匹配的行
join_condition:连接条件
KEY:等值连接条件
flt_batch_exec标记:节点上是否存在filter的批量指令,存在则为flt_batch_exec(1),否则为flt_batch_exec(0)
HASH RIGHT SEMI JOIN2 key_num:等值连接条件数 HASH右半连接
(ANTI):是否为反连接
join_condition:连接条件
KEY:等值连接条件
KEY_NULL_EQU:连接列的NULL值比较策略。取值:0:NULL与NULL不相等;1:NULL与NULL相等。例如:(0,1,0)表示第1个和第3个连接条件中NULL值视为不等,第2个连接条件中NULL值视为相等
INFO_BITS:相关优化信息的标志位,其中bit0指明是否在左表为广播数据时共享0号工作节点哈希表
flt_batch_exec标记:节点上是否存在filter的批量指令,存在则为flt_batch_exec(1),否则为flt_batch_exec(0)
HASH RIGHT SEMI JOIN32 (any_options):取值包括:“= all”、“<> any”、“op all”、“op any” 用于OP SOME/ANY/ALL的HASH右半连接
key_num:等值连接条件数
join_condition:连接条件
KEY:等值连接条件
KEY_NULL_EQU:连接列的NULL值比较策略。取值:0:NULL与NULL不相等;1:NULL与NULL相等。例如:(0,1,0)表示第1个和第3个连接条件中NULL值视为不等,第2个连接条件中NULL值视为相等
HASH2 INNER JOIN (UNIQUE_FLAG):该连接中左右表数据的唯一性策略。取值:LRKEY_UNIQUE:左右表数据分别根据各自KEY值唯一;LKEY_UNIQUE:左表数据根据KEY值唯一,右表则不唯一;RKEY_UNIQUE:右表数据根据KEY值唯一,左表则不唯一 HASH内连接
key_num:等值连接条件数
join_condition:连接条件
KEY:等值连接条件
KEY_NULL_EQU:连接列的NULL值比较策略。取值:0:NULL与NULL不相等;1:NULL与NULL相等。例如:(0,1,0)表示第1个和第3个连接条件中NULL值视为不等,第2个连接条件中NULL值视为相等
INFO_BITS:相关优化信息的标志位,6个标志位自低向高含义如下:bit0:是否在哈希连接左表为广播数据时共享0号工作节点的哈希表;bit1:是否使用UNIONALL优化;bit2:是否选择开始执行任务;bit3:是否进行链路发送优化;bit4:是否进行链路发送优化,且需要进行归并;bit5:用于指示当前ESEND发送的目标进行归并排序
HEAP TABLE stask_no:子任务的序号,-1表示root子任务 临时结果表
sql_invoke:是否已在所属子计划进行含sql的函数调用
table_no:临时结果表编号
full:并行场景数据完整性,取值:0:局部数据;1:完整数据
mpp_full:是否在MPP/DPC模式下表示完整数据
autoid:是否生成autoid列
sites:站点的ID和并行度序列,“-”表示空。例如(1:3,2:4)表示1号站点并行度3,2号站点并行度4
HEAP TABLE SCAN table_no:临时结果表编号 临时结果表扫描
HFD mpp_opt:是否通过发送整个计划实现对MPP处理的优化 删除事务型HUGE表数据
HFDEL mpp_opt:是否通过发送整个计划实现对MPP处理的优化 删除非事务型HUGE表数据
HFI (tabname):表名 事务型HUGE表插入记录
mpp_opt:MPP模式下插入优化选项,取值:-1:不优化,DPC环境下取该值;0:不优化,无优化或非MPP环境下取该值;1:在随机插入目标表时分发整个插入计划;2:基于1的特性,省略MDIS分发
HFI2 (tabname):表名 MPP模式下优化的事务型HUGE表插入记录
mpp_opt:MPP模式下插入优化选项,取值:-1:不优化,DPC环境下取该值;0:不优化,无优化或非MPP环境下取该值;1:在随机插入目标表时分发整个插入计划;2:基于1的特性,省略MDIS分发
HFINS2 mpp_opt:MPP模式下插入优化选项,取值:-1:不优化,DPC环境下取该值;0:不优化,无优化或非MPP环境下取该值;1:在随机插入目标表时分发整个插入计划;2:基于1的特性,省略MDIS分发 非事务型HUGE表插入记录
HFINS3 无参数 MPP模式下优化的非事务型HUGE表插入记录
HFINS4 无参数 非MPP模式下,针对非事务型HUGE水平分区主表的插入优化,需要参数HFINS_PARALLEL_FLAG=2
HFLKUP (tabname):表名 根据ROWID检索非事务型HUGE表数据
HFLKUP2 (tabname):表名 根据ROWID检索事务型HUGE表数据
HFS UPDATE table:表名 更新非事务型HUGE表数据
type:类型,取值:SELECT、CURSOR
mpp_opt:是否通过发送整个计划实现对MPP处理的优化
HFSCN (tabname):表名 非事务型HUGE表的逐行扫描
SAMPLE标记:用于标记节点上是否存在sample表达式,存在则带有此标记,否则无
HFSCN2 (tabname):表名 事务型HUGE表的逐行扫描
NEED_SLCT(TRUE):是否进行过滤条件下推的优化
SAMPLE标记:用于标记节点上是否存在sample表达式,存在则带有此标记,否则无
HFSEK (tabname):表名 根据KEY检索非事务型HUGE表数据
scan_type:扫描类型
scan_range:扫描范围
SAMPLE标记:用于标记节点上是否存在sample表达式,存在则带有此标记,否则无
HFSEK2 (tabname):表名 根据KEY检索事务型HUGE表数据
scan_type:扫描类型
scan_range:扫描范围
SAMPLE标记:用于标记节点上是否存在sample表达式,存在则带有此标记,否则无
HFU table:表名 更新事务型HUGE表数据
type:类型,取值:SELECT、CURSOR
mpp_opt:是否通过发送整个计划实现对MPP处理的优化
HIERARCHICAL QUERY (UNIQUE):结果集是否去重 层次查询
key_num:等值连接条件数
connect_by_condition:连接条件
HPM order_keys:排序项 水平分区表归并排序
is_distinct:是否对排序结果进行去重操作
top_flag:是否有TOP子句需要处理
pll_scan_type:并行处理时扫描相关信息,格式为:[扫描类型,反向扫描信息(可选),末尾KEY优化信息(可选)]
pll_keys:并行处理时分区列计算表达式相关信息,格式为:(分区列的计算表达式中相等的个数,分区列的计算表达式中最后一列起始的个数,分区列的计算表达式中最后一列终止的个数)
INDEX JOIN LEFT JOIN2 join_condition:连接条件 索引左连接
ret_null:是否仅返回未匹配的行
INDEX JOIN SEMI JOIN2 (ANTI):是否为反连接 索引半连接
join_condition:连接条件
flt_batch_exec标记:节点上是否存在filter的批量指令,存在则为flt_batch_exec(1),否则为flt_batch_exec(0)
INSERT (partition_type):分区类型,取值:Vertical Partition:垂直分区;Horizon Partition:水平分区;为空表示不分区 插入记录
table:表名或视图名,“-”表示空,使用远程操作时会增加“@”+“dblink连接名”作为后缀
type:插入类型,取值:UNKNOWN、VALUES、SELECT、MVALUE
hp_opt:是否进行分区列等值过滤优化
mpp_opt:MPP模式下插入优化选项,取值:-1:不优化,DPC环境下取该值;0:不优化,无优化或非MPP环境下取该值;1:在随机插入目标表时分发整个插入计划;2:基于1的特性,省略MDIS分发
INSERT_LIST (partition_type):分区类型,取值:Vertical Partition:垂直分区;Horizon Partition:水平分区;为空表示不分区 堆表插入
table:表名或视图名,“-”表示空,使用远程操作时会增加“@”+“dblink连接名”作为后缀
type:插入类型,取值:UNKNOWN、VALUES、SELECT、MVALUE
hp_opt:是否进行分区列等值过滤优化
mpp_opt:MPP模式下插入优化选项,取值:-1:不优化,DPC环境下取该值;0:不优化,无优化或非MPP环境下取该值;1:在随机插入目标表时分发整个插入计划;2:基于1的特性,省略MDIS分发
INSERT_REMOTE (partition_type):分区类型,取值:Vertical Partition:垂直分区;Horizon Partition:水平分区;为空表示不分区 DBLINK插入操作
table:表名或视图名,“-”表示空,使用远程操作时会增加“@”+“dblink连接名”作为后缀
type:插入类型,取值:UNKNOWN、VALUES、SELECT、MVALUE
hp_opt:是否进行分区列等值过滤优化
mpp_opt:MPP模式下插入优化选项,取值:-1:不优化,DPC环境下取该值;0:不优化,无优化或非MPP环境下取该值;1:在随机插入目标表时分发整个插入计划;2:基于1的特性,省略MDIS分发
INSERT3 (partition_type):分区类型,取值:Vertical Partition:垂直分区;Horizon Partition:水平分区;为空表示不分区 MPP模式下查询插入优化处理
table:表名或视图名,“-”表示空,使用远程操作时会增加“@”+“dblink连接名”作为后缀
type:插入类型,取值:UNKNOWN、VALUES、SELECT、MVALUE
hp_opt:是否进行分区列等值过滤优化
mpp_opt:MPP模式下插入优化选项,取值:-1:不优化,DPC环境下取该值;0:不优化,无优化或非MPP环境下取该值;1:在随机插入目标表时分发整个插入计划;2:基于1的特性,省略MDIS分发
INTERSECT 无参数 集合的交运算,且取交集后删除重复项
INTERSECT ALL 无参数 集合的交运算,且取交集后不删除重复项
LOCAL BROADCAST op_id:本地并行模式下节点所属通讯操作符中的序号 本地并行模式下,消息广播到各线程,包含必要的集函数合并计算
LOCAL COLLECT op_id:本地并行模式下节点所属通讯操作符中的序号 本地并行模式下数据收集处理,代替LOCAL GATHER
n_grp_by:分组列个数
n_cols:输出列个数
n_keys:分发列的个数
for_sync:该操作符是否仅用于同步
LOCAL DISTRIBUTE op_id:本地并行模式下节点所属通讯操作符中的序号 本地并行模式下,消息各线程的相互重分发
n_keys:分发列的个数
n_grp:分组列个数
flt_only:是否只需过滤非当前站点。各站点均拥有完整数据时,分发时只需要过滤掉非当前站点的数据
flt_site_data:是否需要过滤站点数据,仅当参数flt_only为TRUE时生效
pipe_mode(TRUE):是否可优化分区表
n:本地并行工作的线程数
fbtr_flag:是否用于fbtr(fast insert b tree)。是则为fbtr_flag(1),否则为fbtr_flag(0)
LOCAL GATHER op_id:本地并行模式下节点所属通讯操作符中的序号 本地并行模式下,消息收集到主线程
n_grp_by:分组列个数
n_cols:输出列个数
n_keys:分发列的个数
invoke_flag:是否在父亲节点存在函数调用的表达式计算。值为TRUE时从EP不执行该计算且直接丢弃儿子节点相关数据
top_flag:是否有TOP子句需要处理
LOCAL SCATTER op_id:本地并行模式下节点所属通讯操作符中的序号 本地并行模式下,主线程向各从线程广播消息
notify_only:邮件是否携带通知标记
LOCK TID 无参数 上锁
LSET 无参数 DBLINK查询结果集
MERGE INNER JOIN3 key_num:等值连接条件数 归并内连接
KEY:等值连接条件
KEY_NULL_EQU:连接列的NULL值比较策略。取值:0:NULL与NULL不相等;1:NULL与NULL相等。例如:(0,1,0)表示第1个和第3个连接条件中NULL值视为不等,第2个连接条件中NULL值视为相等
MERGE SEMI JOIN3 (ANTI):是否为反连接 归并半连接
join_condition:连接条件
KEY:等值连接条件
KEY_NULL_EQU:连接列的NULL值比较策略。取值:0:NULL与NULL不相等;1:NULL与NULL相等。例如:(0,1,0)表示第1个和第3个连接条件中NULL值视为不等,第2个连接条件中NULL值视为相等
MPP BROADCAST op_id:MPP模式下节点所属通讯操作符中的序号 MPP模式下,消息广播到各站点,包含必要的集函数合并计算
MPP COLLECT op_id:MPP模式下节点所属通讯操作符中的序号 用于替换顶层MPP GATHER,除了收集数据到主节点,还增加主从节点间的同步执行功能,防止从节点不断发送数据到主节点造成邮件堆积
n_grp_by:分组列个数
n_cols:输出列个数
n_keys:分发列的个数
for_sync:该操作符是否仅用于同步
MPP DISTRIBUTE op_id:MPP模式下节点所属通讯操作符中的序号 MPP模式下,消息各站点的相互重分发
n_keys:分发列的个数
n_grp:分组列个数
filter:是否只需过滤非当前站点。各站点均拥有完整数据时,分发时只需要过滤掉非当前站点的数据
rowid_flag:是否根据rowid信息获取站点号进行分发
n:参与计算的站点数,值为0时表示其与EP个数一致
slave_empty:是否限制MPP从节点向主节点传送数据,或本地并行的从线程向主线程传送数据。取值:0:不限制;1:不允许MPP从节点向主节点传送数据;2:不允许本地并行的从线程向主线程传送数据
fbtr_flag:是否用于fbtr(fast insert b tree)。是则为fbtr_flag(1),否则为fbtr_flag(0)
MPP GATHER op_id:MPP模式下节点所属通讯操作符中的序号 MPP模式下,消息收集到主站点
n_grp_by:分组列个数
n_cols:输出列个数
n_keys:分发列的个数
invoke_flag:是否在父亲节点存在函数调用的表达式计算。值为TRUE时,从EP不执行该计算且直接丢弃儿子节点相关数据
top_flag:是否有TOP子句需要处理
MPP SCATTER op_id:MPP模式下节点所属通讯操作符中的序号 MPP模式下,主站点向各从站点广播消息
MSYNC op_id:MPP模式下节点所属通讯操作符中的序号 MPP模式下,数据同步处理
MVCC CHECK 无参数 多版本检查
NCUR2 cursorname:游标名 游标操作
NEST LOOP FULL JOIN2 join_condition:连接条件 嵌套循环全外连接
flt_batch_exec标记:节点上是否存在filter的批量指令,存在则为flt_batch_exec(1),否则为flt_batch_exec(0)
NEST LOOP INDEX JOIN2 join_condition:连接条件 索引内连接
NEST LOOP INNER JOIN2 join_condition:连接条件 嵌套循环内连接
[with_var]:嵌套连接是否使用var方式
NEST LOOP LEFT JOIN2 join_condition:连接条件 嵌套循环左外连接
[with_var]:嵌套连接是否使用var方式
partition_keys_num:paritition outer join的KEY个数
ret_null:是否仅返回未匹配的行
NEST LOOP SEMI JOIN2 (ANTI):是否为反连接 嵌套循环半连接
join_condition:连接条件
[with_var]:嵌套连接是否使用var方式
(colidlist):与var变量相关的左表列序号序列。例如(0,1,3)表示三个var变量依次来自左表的第1、2、4列
flt_batch_exec标记:节点上是否存在filter的批量指令,存在则为flt_batch_exec(1),否则为flt_batch_exec(0)
NSET2 无参数 结果集收集,一般是查询计划的顶层节点
NTTS2 for_mdis:是否从MPP DISTRIBUTE获得数据 临时表,临时存放数据
is_atom:是否要求单行数据
PARALLEL scan_type:分区表子分区裁剪方式。其返回值为FULL表示所有子分区裁剪,EQU表示等值子分区裁剪,NULL EQU表示空值子分区裁剪,GE_LE表示闭区间裁剪,G_LE表示左开右闭区间裁剪,GE_L表示左闭右开区间裁剪,G_L表示开区间裁剪,GE表示左闭区间裁剪,LE表示右闭区间裁剪,G表示左开区间裁剪,L表示右开区间裁剪,CONTAIN表示等值全文索引扫描,NOT CONTAIN表示空值全文索引扫描V_AND表示列存储表上的多列rowid AND 后查找,REMOTE表示dblink的远程查询,BITMAP表示位图索引扫描,IN LIST表示分区表首列in list优化扫描,BITMAP JOIN表示位图连接索引扫描,INDEX SKIP表示索引跳读(用于复合索引,过滤条件缺少前导列情况),GSEK表示空间索引扫描,-表示扫描条件缺失 控制水平分区子表的扫描
key_num:分区列计算表达式相关信息,格式为:(分区列的计算表达式中相等的个数,分区列的计算表达式中最后一列起始的个数,分区列的计算表达式中最后一列终止的个数)
simple:是否对包含单分区列的一级分区表进行等值查询优化
range_sfun_opt:aagr+pll+cscn对于range分区列求min/max时的优化标记,若做了优化则为range_sfun_opt(1),否则为range_sfun_opt(0)
PIPE2 无参数 管道。先做一遍右儿子,然后执行左儿子,并把左儿子的数据向上送,直到左儿子不再有数据
PRJT2 exp_num:映射列数 关系的“投影”(project)运算,用于选择表达式项的计算
is_atom:是否要求单行数据
PSCN 无参数 批量参数当作表来扫描
REMOTE SCAN tabname@dblink_name:表名@dblink连接名 DBLINK远程表扫描
alias_name:表的别名
condition参数:用于展示dblink发送给远程的过滤条件
RN 无参数 实现ROWNUM查询
RNSK (rownum_exp):与rownum相关的过滤条件 ROWNUM作为过滤条件时的计算处理
SAGR2 grp_num:分组项个数 如果输入流是有序的,则使用流分组,并计算集函数
sfun_num:返回上层操作符的集函数个数
distinct_flag:集函数参数是否去重
top_num:是否只返回前N组
slave_empty:是否限制MPP从节点向主节点传送数据,或本地并行的从线程向主线程传送数据。取值:0:不限制;1:不允许MPP从节点向主节点传送数据;2:不允许本地并行的从线程向主线程传送数据
keys:分组项
opt_num(n):内层分组项中前n项可以直接代表外层分组项
dist_arg_opt参数:标记是否做distinct优化(分组项+该distinct参数 刚好组成aagr/sagr使用索引的前导列,那么计算该参数的dist时无需使用hash表,直接相邻行比较即可(分组项组内参数已有序)),dist_arg_opt(a1,a2,...an),a对应每个distinct参数,取值0代表此distinct参数不优化计算,反之则为1
SELECT INTO2 无参数 查询插入
SET TRANSACTION writeable:是否为可更新事务 事务操作(START除外)
iso_level:事务隔离级别,取值:READ UNCOMMITTED:读未提交;READ COMMITTED:读提交;REPEATABLE READ:可重复读;SERIALIZABLE:可序列化
SLCT2 (condition):过滤条件 关系的“选择”(select)运算,用于查询条件的过滤
SLCT_PUSHDOWN(TRUE):是否进行过滤条件下推的优化
SORT2 key_num:排序列个数 排序
is_distinct:排序时是否进行去重操作
is_adaptive:是否使用排序的自适应优化(即当下层数据有序时,此次排序实际不进行)
SORT3 key_num:排序列个数 排序
partition_key_num:已经有序的前导排序列个数
is_distinct:排序时是否进行去重操作
top_flag:是否返回排序后的N行
is_adaptive:是否使用排序的自适应优化(即当下层数据有序时,此次排序实际不进行)
can_discard:意义为xsort节点是否能被摘除(排序操作符在存在can_discard标记的情况下以管道模式执行, 直接上传左孩子数据)
SPL2 stask_no:子任务的序号,-1表示root子任务 临时表。和NTTS2不同的是,它的数据集不向父亲节点传送,而是被编号,用编号和KEY来定位访问;而NTTS2的数据,主动传递给父亲节点
key_num:包含ROWID在内的KEY数
spool_num:SPOOL临时表编号
is_atom:是否限制只能产生单行结果
has_var:外层传入变量存在性探测结果(相关查询需探测外层传入变量)
sites:站点的ID和并行度序列,“-”表示空。例如:(1:3,2:4)表示1号站点并行度3,2号站点并行度4
SSCN idxname(tabname) :索引名(表名) 直接使用二级索引进行扫描
btr_scan:等于1表示使用B树扫描,等于0表示使用簇游标扫描
is_global:等于1时表示使用全局索引
SSEK2 scan_type:扫描类型 二级索引数据定位
idxname(tabname) :索引名(表名)
scan_range:扫描范围
is_global:等于1时表示使用全局索引
START TRANSACTION writeable:是否为可更新事务 启动会话
iso_level:事务隔离级别,取值:READ UNCOMMITTED:读未提交;READ COMMITTED:读提交;REPEATABLE READ:可重复读;SERIALIZABLE:可序列化
STAT 无参数 统计信息计算
TOPN2 top_num:TOP子句的行数表达式 取前N条记录
top_off:top_num的偏移量。例如:op_off=3、top_num=4时,从第3行后开始,取第4到第7共4行结果
top_percent:top_num的百分比。例如:top_percent=0.5、top_num=100时,取前50行结果(参数top_off和top_percent不会同时出现)
UFLT IS_TOP_1:是否在更新操作时相同ROWID只保留1条记录,防止碰到重复数据报错。取值:FALSE:重复数据报错;FIRST:重复数据保留第一行;LAST:重复数据保留最后一行 处理UPDATE FROM子句
UNION 无参数 UNION计算
UNION ALL CTE:递归WITH查询名 UNION ALL运算
UNION ALL(MERGE) merge_type:排序方式,取值:A:升序排列;D:降序排列;L:升序排列,NULL值结果排在末尾;1:降序排列,NULL值结果排在末尾 UNION ALL运算(使用归并)
n_merge_keys:表的列数
UNION FOR OR(MERGE) merge_type:排序方式,取值:A:升序排列;D:降序排列;L:升序排列,NULL值结果排在末尾;1:降序排列,NULL值结果排在末尾 OR过滤的UNION计算(使用归并)
n_merge_keys:表的列数
n_dist_keys:去重的列数
UNION FOR OR2 key_num:需要进行去重操作的列数 OR过滤的UNION计算
outer_join:UNION操作的外连接类型,取值:L:左外连接;R:右外连接;F:全外连接;-:非外连接
UPDATE (partition_type):分区类型,取值:Vertical Partition:垂直分区;Horizon Partition:水平分区;为空表示不分区 更新数据
table:表名或视图名,“-”表示空,使用远程操作时会增加“@”+“dblink连接名”作为后缀
type:更新类型,取值:SELECT、CURSOR
mpp_opt:是否通过发送整个计划实现对MPP处理的优化
hp_opt:是否进行分区列等值过滤优化
UPDATE_REMOTE (partition_type):分区类型,取值:Vertical Partition:垂直分区;Horizon Partition:水平分区;为空表示不分区 DBLINK更新操作
table:表名或视图名,“-”表示空,使用远程操作时会增加“@”+“dblink连接名”作为后缀
type:更新类型,取值:SELECT、CURSOR
mpp_opt:是否通过发送整个计划实现对MPP处理的优化
hp_opt:是否进行分区列等值过滤优化
MODEL cell_references:MODEL所有不同的单元格引用表达式的数量 MODEL子句
sorted:当可以使用key进行二分搜索或者model唯一性模式为:检查维度的所有组合值对应单元格的唯一性时,sorted(1),否则sorted(0)
MERGE INTO 无参数 合并数据
微信扫码
分享文档
扫一扫
联系客服