| 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 更新操作 |