AAGR2 | grp_num:分组项个数 / sfun_num:返回上层操作符的集函数个数/distinct_flag:集函数参数是否去重 / slave_empty:是否限制 MPP 从节点向主节点传送数据,或本地并行的从线程向主线程传送数据。取值:0:不限制;1:不允许 MPP 从节点向主节点传送数据;2:不允许本地并行的从线程向主线程传送数据 | 简单聚集。如果没有分组,则直接计算聚集函数 |
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):是否进行过滤条件下推的优化 | 聚集索引扫描 |
CSEK2 | scan_type:扫描类型 / idxname(tabname) :索引名(表名) / scan_range:扫描范围 | 聚集索引数据定位 |
CTE_SCN | exp_num:映射列数 / (queryname):查询名 | 递归 WITH 查询 |
CTNS | idxname(tabname) :索引名(表名) / KEY:全文索引的关键词 | 用于实现全文索引的CONTAINS |
DELETE | (partition_type):分区类型,取值:Vertical Partition:垂直分区;Horizon Partition:水平分区;为空表示不分区 / table:表名或视图名,“-”表示空,使用远程操作时会增加“@”+“dblink连接名”作为后缀 / ype:删除类型,取值:SELECT、CURSOR / mpp_opt:是否通过发送整个计划实现对 MPP 处理的优化 / hp_opt:是否进行分区列等值过滤优化 | 删除数据 |
DELETE_REMOTE | (partition_type):分区类型,取值:Vertical Partition:垂直分区;Horizon Partition:水平分区;为空表示不分区 / table:表名或视图名,“-”表示空,使用远程操作时会增加“@”+“dblink连接名”作为后缀 / type:删除类型,取值:SELECT、CURSOR / mpp_opt:是否通过发送整个计划实现对 MPP 处理的优化 / hp_opt:是否进行分区列等值过滤优化 | DBLINK 删除操作 |
DISTINCT | keys:MPP 模式下需要分发的列的信息(仅在 MPP 模式下生效) | 去重 |
DSCN | idxname(tabname) :索引名(表名) | 动态视图表扫描 |
DSSEK | scan_type:扫描类型 / idxname(tabname) :索引名(表名) / scan_range:扫描范围 | DISTINCT 列上索引跳跃扫描(单列索引或复合索引) |
ESCN | 无参数 | 外部表扫描 |
EXCEPT | 无参数 | 集合的差运算,且取差集后删除重复项 |
EXCEPT ALL | 无参数 | 集合的差运算,且取差集后不删除重复项 |
EHFD | mpp_opt:数据操作方式,1:数据直接发送给 BP 端进行删除;0:通过 SP 端分发 | DPC 下事务型 HUGE表的数据删除 |
EHFI | (tabname):表名 / mpp_opt:数据操作方式,1:数据直接发送给 BP 端进行插入;0:通过 SP 端分发 | DPC 下事务型 HUGE表的数据插入 |
EHFINS | (tabname):表名 / mpp_opt:数据操作方式,1:数据直接发送给 BP 端进行插入;0:通过 SP 端分发 | DPC 下非事务型HUGE 表的数据插入 |
EHFU | mpp_opt:数据操作方式,1:数据直接发送给 BP 端进行更新;0:通过 SP 端分发 | DPC 下事务型 HUGE表的数据更新 |
ERECV | stask_no:自身所处的子任务的序号,-1 表示 root 子任务 / l_stask_no:孩子子计划的序号 / n_keys:归并排序的 key 的个数 / in_turn:是否按照顺序接收各个发送端的数据 / trig:是否在 IDU(增删改操作)上存在触发器 | DPC 下用于接收数据,和 ESEND 对应 |
ESEND | stask_no:自身所处的子任务的序号,-1 表示 root 子任务 / 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 发送的目标进行归并排序 | DPC 下用于发送数据,和 ERECV 对应 |
FAGR2 | sfun_num:返回上层操作符的集函数个数 / idxname:索引名 | 快速聚集,如果没有where 条件,且取count(*), 或者基于索引的 MAX/MIN值,则可以快速取得集函数的值 |
FILLBTR | index_id:用于填充 B 树的索引 ID | 填充 B 树 |
FTTS | for_mdis:是否从 MPP DISTRIBUTE 获得数据 | MPP\LPQ 下,对临时表的优化 |
GI | policy:指示表的数据访问粒度,各个取值和含义请参考《DM8 分布计算集群》中 5.4 小节“数据交换与数据迭代操作符” / gi_unit:当前 GI 迭代器控制的数据扫描操作符起止序号 / scan_type[0]:扫描相关信息,格式为:[扫描类型,反向扫描信息(可选),末尾 KEY 优化信息(可选)] / dynamic_pll:是否包含动态裁剪 | Granule Iterator,在DMDPC 集群中,控制各工作线程的数据访问粒度和分区表裁剪 |
GSEK | idxname(tabname) :索引名(表名) | 空间索引查询 |
HAGR2 | grp_num:分组项个数 / sfun_num:返回上层操作符的集函数个数 / distinct_flag:集函数参数是否去重 / top_num:是否只返回前 N 组 / slave_empty:是否限制 MPP 从节点向主节点传送数据,或本地并行的从线程向主线程传送数据。取值:0:不限制;1:不允许 MPP 从节点向主节点传送数据;2:不允许本地并行的从线程向主线程传送数据 / keys:分组项 | HASH 分组,并计算聚集函数 |
HASH FULL JOIN2 | key_num:等值连接条件数 / mix_aggr:是否将分组操作下放到此步骤进行,仅支持 COUNT 和 SUM函数 / mix_dist:是否存在对分组操作和哈希左外连接的优化(即把分组操作下放到哈希左外连接中) / join_condition:连接条件 / KEY:等值连接条件 | HASH 全外连接 |
HASH LEFT JOIN2 | key_num:等值连接条件数 / partition_keys_num:paritition outer join 的 KEY 个数 / ret_null:是否仅返回未匹配的行 / mix:需要计算的单个右表列的 COUNT 函数个数 / join_condition:连接条件 / KEY:等值连接条件 | HASH 左外连接 |
HASH LEFT SEMI JOIN12 | (ANTI):是否为反连接 / join_condition:连接条件 | HASH 左半连接 |
HASH LEFT SEMI JOIN2 | (ANTI):是否为反连接 / key_num:等值连接条件数 / join_condition:连接条件 / KEY:等值连接条件 / KEY_NULL_EQU:连接列的 NULL 值比较策略。取值:0:NULL 与 NULL不相等;1:NULL 与 NULL 相等。例如:(0,1,0)表示第 1 个和第 3 个连接条件中 NULL 值视为不等,第 2 个连接条件中 NULL 值视为相等 | HASH 左半连接 |
HASH LEFT SEMI MULTIPLE JOIN | (ANTI):是否为反连接 / join_condition:连接条件 | 多列 NOT IN |
HASH RIGHT JOIN2 | key_num:等值连接条件数 / ret_null:是否仅返回未匹配的行 / join_condition:连接条件 / KEY:等值连接条件 | HASH 右外连接 |
HASH RIGHT SEMI JOIN2 | key_num:等值连接条件数 / (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 号工作节点哈希表 | HASH 右半连接 |
HASH RIGHT SEMI JOIN32 | (any_options):取值包括:“= all”、“<> any”、“op all”、“op any” / key_num:等值连接条件数 / join_condition:连接条件 / KEY:等值连接条件 / KEY_NULL_EQU:连接列的 NULL 值比较策略。取值:0:NULL 与 NULL不相等;1:NULL 与 NULL 相等。例如:(0,1,0)表示第 1 个和第 3 个连接条件中 NULL 值视为不等,第 2 个连接条件中 NULL 值视为相等 | 用 于 OP SOME/ANY/ALL 的HASH 右半连接 |
HASH2 INNER JOIN | (UNIQUE_FLAG) :该连接中左右表数据的唯一性策略。取值:LRKEY_UNIQUE:左右表数据分别根据各自 KEY 值唯一;LKEY_UNIQUE:左表数据根据 KEY 值唯一,右表则不唯一;RKEY_UNIQUE:右表数据根据KEY 值唯一,左表则不唯一 / 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 发送的目标进行归并排序 | HASH 内连接 |
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):表名 / mpp_opt:MPP 模式下插入优化选项,取值:-1:不优化,DPC 环境下取该值;0:不优化,无优化或非 MPP 环境下取该值;1:在随机插入对象表时分发整个插入计划;2:基于 1 的特性,省略 MDIS 分发 | 事务型 HUGE 表插入记录 |
HFI2 | (tabname):表名 / mpp_opt:MPP 模式下插入优化选项,取值:-1:不优化,DPC 环境下取该值;0:不优化,无优化或非 MPP 环境下取该值;1:在随机插入对象表时分发整个插入计划;2:基于 1 的特性,省略 MDIS 分发 | MPP 模式下优化的事务型 HUGE 表插入记录 |
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:表名 / type:类型,取值:SELECT、CURSOR / mpp_opt:是否通过发送整个计划实现对 MPP 处理的优化 | 更新非事务型 HUGE表数据 |
HFSCN | (tabname):表名 | 非事务型 HUGE 表的逐行扫描 |
HFSCN2 | (tabname):表名 / NEED_SLCT(TRUE):是否进行过滤条件下推的优化 | 事务型 HUGE 表的逐行扫描 |
HFSEK | (tabname):表名 / scan_type:扫描类型 / scan_range:扫描范围 | 根据 KEY 检索非事务型 HUGE 表数据 |
HFSEK2 | (tabname):表名 / scan_type:扫描类型 / scan_range:扫描范围 | 根据 KEY 检索事务型HUGE 表数据 |
HFU | table:表名 / type:类型,取值:SELECT、CURSOR / mpp_opt:是否通过发送整个计划实现对 MPP 处理的优化 | 更新事务型 HUGE 表数据 |
HIERAR CHICAL 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:连接条件 | 索引半连接 |
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:水平分区;为空表示不分区 / table:表名或视图名,“-”表示空,使用远程操作时会增加“@”+“dblink连接名”作为后缀 / type:插入类型,取值:UNKNOWN、VALUES、SELECT、MVALUE / hp_opt:是否进行分区列等值过滤优化 / mpp_opt:MPP 模式下插入优化选项,取值:-1:不优化,DPC 环境下取该值;0:不优化,无优化或非 MPP 环境下取该值;1:在随机插入对象表时分发整个插入计划;2:基于 1 的特性,省略 MDIS 分发 | DBLINK 插入操作 |
INSERT3 | (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 分发 | MPP 模式下查询插入优化处理 |
INTERSECT | 无参数 | 集合的交运算,且取交集后删除重复项 |
INTERSECT ALL | 无参数 | 集合的交运算,且取交集后不删除重复项 |
LOCAL BROAD CAST | op_id:本地并行模式下节点所属通讯操作符中的序号 | 本地并行模式下,消息广播到各线程,包含必要的聚集函数合并计算 |
LOCAL COLLECT | op_id:本地并行模式下节点所属通讯操作符中的序号 / n_grp_by:分组列个数 / n_cols:输出列个数 / n_keys:分发列的个数 / for_sync:该操作符是否仅用于同步 | 本地并行模式下数据收 集 处 理 , 代 替LOCAL GATHER |
LOCAL DISTRIBUTE | n_grp:分组列个数 / flt_only:是否只需过滤非当前站点。各站点均拥有完整数据时,分发时只需要过滤掉非当前站点的数据 / flt_site_data:是否需要过滤站点数据,仅当参数 flt_only 为 TRUE 时生效 / pipe_mode(TRUE):是否可优化分区表 / n:本地并行工作的线程数 | 本地并行模式下,消息各线程的相互重分发 |
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 BROAD CAST | op_id:MPP 模式下节点所属通讯操作符中的序号 | MPP 模式下,消息广播到各站点,包含必要的聚集函数合并计算 |
MPP COLLECT | op_id:MPP 模式下节点所属通讯操作符中的序号 / n_grp_by:分组列个数 / n_cols:输出列个数 / n_keys:分发列的个数 / for_sync:该操作符是否仅用于同步 | 用于替换顶层 MPP GATHER,除了收集数据到主节点,还增加主从节点间的同步执行功能,防止从节点不断发送数据到主节点造成邮件堆积 |
MPP DISTRIBUTE | op_id:MPP 模式下节点所属通讯操作符中的序号 / n_keys:分发列的个数 / n_grp:分组列个数 / filter:是否只需过滤非当前站点。各站点均拥有完整数据时,分发时只需要过滤掉非当前站点的数据 / rowid_flag:是否根据 rowid 信息获取站点号进行分发 / n:参与计算的站点数,值为 0 时表示其与 EP 个数一致 / slave_empty:是否限制 MPP 从节点向主节点传送数据,或本地并行的从线程向主线程传送数据。取值:0:不限制;1:不允许 MPP 从节点向主节点传送数据;2:不允许本地并行的从线程向主线程传送数据 | MPP 模式下,消息各站点的相互重分发 |
MPP GATHER | op_id:MPP 模式下节点所属通讯操作符中的序号 / n_grp_by:分组列个数 / n_cols:输出列个数 / n_keys:分发列的个数 / invoke_flag:是否在父亲节点存在函数调用的表达式计算。值为 TRUE时,从 EP 不执行该计算且直接丢弃儿子节点相关数据 / top_flag:是否有 TOP 子句需要处理 | MPP 模式下,消息收集到主站点 |
MPP SCATTER | op_id:MPP 模式下节点所属通讯操作符中的序号 | MPP 模式下,主站点向各从站点广播消息 |
MSYNC | op_id:MPP 模式下节点所属通讯操作符中的序号 | MPP 模式下,数据同步处理 |
MVCC CHECK | 无参数 | 多版本检查 |
NCUR2 | cursorname:游标名 | 游标操作 |
NEST LOOP FULL JOIN2 | join_condition:连接条件 | 嵌套循环全外连接 |
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 列 | 嵌套循环半连接 |
NSET2 | 无参数 | 结果集收集,一般是查询计划的顶层节点 |
NTTS2 | for_mdis:是否从 MPP DISTRIBUTE 获得数据 | 临时表,临时存放数据 |
PARALLEL | scan_type:扫描类型 / key_num:分区列计算表达式相关信息,格式为:(分区列的计算表达式中相等的个数,分区列的计算表达式中最后一列起始的个数,分区列的计算表达式中最后一列终止的个数) / simple:是否对包含单分区列的一级分区表进行等值查询优化 | 控制水平分区子表的扫描 |
PIPE2 | 无参数 | 管道。先做一遍右儿子,然后执行左儿子,并把左儿子的数据向上送,直到左儿子不再有数据 |
PRJT2 | exp_num:映射列数 / is_atom:是否要求单行数据 | 关系的 “ 投影”(project)运算,用于选择表达式项的计算 |
PSCN | 无参数 | 批量参数当作表来扫描 |
REMOTE SCAN | tabname@dblink_name:表名@dblink 连接名 / alias_name:表的别名 | 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:分组项 | 如 果 输 入 流 是 有 序的,则使用流分组,并计算聚集函数 |
SELECT INTO2 | 无参数 | 查询插入 |
SET TRANSACTION | writeable:是否为可更新事务 / iso_level:事务隔离级别,取值:READ UNCOMMITTED:读未提交;READ COMMITTED :读提交; REPEATABLE READ : 可 重 复 读 ;SERIALIZABLE:可序列化 | 事务操作(START 除外) |
SLCT2 | (condition):过滤条件 / SLCT_PUSHDOWN(TRUE):是否进行过滤条件下推的优化 | 关系的 “ 选 择 ”(select)运算,用于查询条件的过滤 |
SORT2 | key_num:排序列个数 / is_distinct:排序时是否进行去重操作 / is_adaptive:是否使用排序的自适应优化(即当下层数据有序时,此次排序实际不进行) | 排序 |
SORT3 | key_num:排序列个数 / is_distinct:排序时是否进行去重操作 / top_flag:是否返回排序后的 N 行 / is_adaptive:是否使用排序的自适应优化(即当下层数据有序时,此次排序实际不进行) | 排序 |
SPL2 | stask_no:子任务的序号,-1 表示 root 子任务 / key_num:包含 ROWID 在内的 KEY 数 / spool_num:SPOOL 临时表编号 / is_atom:是否限制只能产生单行结果 / has_var:外层传入变量存在性探测结果(相关查询需探测外层传入变量) / sites:站点的 ID 和并行度序列,“-”表示空。例如:(1:3,2:4)表示 1 号站点并行度 3,2 号站点并行度 4 | 临时表。和 NTTS2 不同的是,它的数据集不向父亲节点传送,而是被编号,用编号和 KEY 来定位访问;而 NTTS2 的数据,主动传递给父亲节点 |
SSCN | idxname(tabname) :索引名(表名) | 直接使用二级索引进行扫描 |
SSEK2 | scan_type:扫描类型 / idxname(tabname) :索引名(表名) / scan_range:扫描范围 | 二级索引数据定位 |
START TRANSACTION | writeable:是否为可更新事务 / iso_level:事务隔离级别,取值:READ UNCOMMITTED:读未提交;READ COMMITTED :读提交; REPEATABLE READ : 可 重 复 读 ;SERIALIZABLE:可序列化 | 启动会话 |
STAT | 无参数 | 统计信息计算 |
TOPN2 | top_num:TOP 子句的行数表达式 / top_off:top_num 的偏移量。例如:top_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不会同时出现) | 取前 N 条记录 |
UFLT | IS_TOP_1:是否在更新操作时相同 ROWID 只保留 1 条记录,防止碰到重复数据报错 | 处理 UPDATE FROM子句 |
UNION | 无参数 | 无参数 |
UNION ALL | CTE:递归 WITH 查询名 | UNION ALL 运算 |
UNION ALL(MERGE) | merge_type:排序方式,取值:A:升序排列;D:降序排列;L:升序排列,NULL 值结果排在末尾;1:降序排列,NULL 值结果排在末尾 / n_merge_keys:表的列数 | UNION ALL 运算(使用归并) |
UNION FOR OR(MERGE) | merge_type:排序方式,取值:A:升序排列;D:降序排列;L:升序排列,NULL 值结果排在末尾;1:降序排列,NULL 值结果排在末尾 / n_merge_keys:表的列数 / n_dist_keys:去重的列数 | OR 过滤的 UNION 计算(使用归并) |
UNION_FOR_OR2 | key_num:需要进行去重操作的列数 / outer_join:UNION 操作的外连接类型,取值:L:左外连接;R:右外连接;F:全外连接;-:非外连接 | OR 过滤的 UNION 计算 |
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:水平分区;为空表示不分区 / table:表名或视图名,“-”表示空,使用远程操作时会增加“@”+“dblink 连接名”作为后缀 / type:更新类型,取值:SELECT、CURSOR / mpp_opt:是否通过发送整个计划实现对 MPP 处理的优化 / hp_opt:是否进行分区列等值过滤优化 | DBLINK 更新操作 |