检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
Unpivot 算子说明 转置算子。用于将行转换为列。这个操作可以将一张表中的多列数据转换为两列,其中一列是原始表中的列名,另一列是对应的值。 典型场景 查询使用unpivot转置的表。 示例 示例:查询使用unpivot转置的表。 --数据准备。 gaussdb=# CREATE
SetOp 算子说明 SetOp算子用于将两个或多个查询结果合并成一个结果集。SetOp算子包括INTERSECT和EXCEPT。 典型场景 INTERSECT:返回两个查询结果的交集,即两个结果集中都存在的行。 INTERSECT ALL:返回两个查询结果的交集,包括重复的行。
Unique 算子说明 对下层的数据进行去重处理。在执行过程中,它将会遍历所有输入的数据,对其中的重复记录进行筛选,只保留唯一的记录。 典型场景 关闭enable_hashagg参数,使用带distinct查询。 示例 示例:使用带DISTINCT查询。 --数据准备。 gaussdb=#
Group 算子说明 Group算子用于处理Group By子句,对下层排序元组进行分组操作,返回结果是按分组键分组后的结果。 典型场景 分组操作:查询某列有多少个不同的值,其作用类似于DISTINCT。 示例 示例:查询语句中包含GROUP BY子句 --数据准备。 gaussdb=#
RecursiveUnion 算子说明 RecursiveUnion算子用于处理递归调用的UNION语句,该类语句通常出现在CTE表达式中。常见的语法逻辑为:有一个初始输入集作为递归过程的初始数据,然后开始进行递归调用得到输出,最后将本次递归调用的输出作为下次递归调用的输入,循环调用得到最终的输出。
Agg 算子说明 Agg算子是用于执行聚集计算的算子, 支持3种策略处理:普通聚集(不分组只做聚集)、排序聚集和哈希聚集。排序聚集和哈希聚集因为涉及到分组,需要和group by搭配一起使用。排序聚集和哈希聚集的差别在于,排序聚集的输入必须是有序的,而哈希聚集则不关注输入的顺序性
其他关键字 InitPlan Stream 父主题: 算子详解
表连接方式 Nested Loop Join Hash Join Merge Join 父主题: 算子详解
GS_SEG_DATAFILE_LAYOUT GS_SEG_DATAFILE_LAYOUT查看段页式1~5号数据文件的静态布局。只支持管理员权限用户查询。 表1 GS_SEG_DATAFILE_LAYOUT字段 名称 类型 描述 version text 段页式版本。默认:1.0。
GS_SEG_DATAFILE_LAYOUT GS_SEG_DATAFILE_LAYOUT查看段页式1~5号数据文件的静态布局。只支持管理员权限用户查询。 表1 GS_SEG_DATAFILE_LAYOUT字段 名称 类型 描述 version text 段页式版本。默认:1.0。
Limit 算子说明 Limit算子限定了执行结果的输出记录数。如果增加了Limit算子,那么不是所有的行都会被检索到。 典型场景 使用带有Limit关键字的查询语句。 示例 示例:使用带有limit关键字的查询语句。 --数据准备。 gaussdb=# CREATE TABLE
Sort 算子说明 对底层节点返回的元组进行排序。Sort算子的作用是将查询结果按照指定的排序规则进行排序,然后返回有序的结果集。 典型场景 当查询语句中包含order by子句时,GaussDB会在执行计划中选择sort算子来进行排序操作。 采用MergeJoin来进行连接操作。
第四层:Hash Join join算子,主要作用是将t1表和t2表的数据通过hash join的方式连接,并输出结果数据。 父主题: 执行计划详解
LockRows 算子说明 LockRows算子用于锁定查询结果集中的行,以防止其他事务对这些行进行修改或删除。 典型场景 事务中使用SELECT ... FOR SHARE/UPDATE锁定行,防止其他事务对这些行进行修改或删除。 使用FOR SHARE锁定行时,当前事务和其他事务都无法修改或删除锁定行。
Rownum 算子说明 Rownum算子会生成伪列,它返回一个数字,表示从查询中获取结果的行编号。第一行的Rownum为1。可以使用Rownum关键字对查询结果的行编号进行条件过滤。通常出现在Rownum子句里。 使用Rownum有一定的约束条件: Rownum不可作为别名,以免SQL语句出现歧义。
Stream 算子说明 Stream是GaussDB的SMP(对称多处理)中使用的一种技术,SMP采用多线程并行算法,在算子内并行执行,充分利用现代服务器单机多核的特点,提高执行效率。SMP分为计划生成与执行两部分: SMP计划生成。一阶段计划生成:在路径生成阶段,加入并行路径,
Index Scan 算子说明 在索引扫描中,数据库使用语句指定的索引列,通过遍历索引树来检索行。数据库为一个值扫描索引时,发生 n 次 I/O 就能找到其要查找的值,其中 n 即 B-tree索引的高度。Index Scan通常用于检索表数据,数据库以轮流方式先读取索引块,找到
StartWith Operator 算子说明 层次查询算子,用于执行递归查询操作。层次查询的执行流程是: 由START WITH区域的条件选择初始的数据集,把初始的数据集设为工作集。 只要工作集不为空,会用工作集的数据作为输入,查询下一轮的数据,过滤条件由CONNECT BY区
MergeAppend 算子说明 MergeAppend用于多个有序关系集合的追加,操作类似于Append,只是通过归并的方式对有序关系的集合进行加速运算。MergeAppend以保留排序顺序的方式对子查询结果进行组合,可用于组合表分区中已排序的行。因此,与普通Append不同,
Tid Scan 算子说明 行号扫描,该算子主要利用行号(ctid)过滤元组并返回。ASTORE场景下,数据按行存储在HEAP PAGE中,在B-tree 索引中除了存储字段的value,还会存储对应的行号,因此GaussDB中支持通过行号进行快速检索。 行号的写法为: (pag