检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 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表达式中。常见的语法逻辑为:有一个初始输入集作为递归过程的初始数据,然后开始进行递归调用得到输出,最后将本次递归调用的输出作为下次递归调用的输入,循环调用得到最终的输出。
Sample Scan 算子说明 Sample Scan是一种扫描表的方式,它可以在查询过程中随机地从表中抽取一部分数据进行查询,而不是扫描整个表。Sample Scan配合TABLESAMPLE关键字使用,使用方式为[ TABLESAMPLE sampling_method (
Cte Scan 算子说明 CTE(Common Table Expression)是一种临时表达式,Cte Scan用于扫描CTE表达式生成的临时表。 在GaussDB中,可以通过使用with关键字来指定一个或多个CTE,然后在后续的查询中多次使用。 典型场景 当一个查询结果集
Materialize 算子说明 Materialize算子用于缓存子节点返回的结果,对子查询结果进行保存。对于需要重复多次扫描的子节点(特别是扫描结果每次都相同时)可以减少执行代价。 典型场景 当查询语句涉及子查询,需要多次查询同一批数据时,优化器会选择Materialize算
Foreign Scan 算子说明 在GaussDB中,Foreign Scan是一种用于访问外部数据源的扫描器。它可以将外部数据源中的数据作为关系型数据库中的表来处理,从而实现对外部数据源的查询和操作。在GaussDB中,Foreign Scan可以通过扩展API来实现。用户可
Result 算子说明 Result用于处理仅需要一次计算的条件表达式(2 > 1)或者insert中仅有一个VALUES子句,从而控制流程是否可以提前返回,不需要进行后续操作。 典型场景 Result节点用于优化常量条件表达式的查询,条件表达不依赖于扫描的数据,比如:select
ppend不同,MergeAppend在执行操作之前需要确保输入的 m_plan 是有序的。通常,在MergeAppend操作之前(即执行计划的子树中)会出现排序算子 Sort。 典型场景 当分区扫描路径为Index或Index Only,且分区剪枝结果大于1,并且满足以下条件时。
LockRows 算子说明 LockRows算子用于锁定查询结果集中的行,以防止其他事务对这些行进行修改或删除。 典型场景 事务中使用SELECT ... FOR SHARE/UPDATE锁定行,防止其他事务对这些行进行修改或删除。 使用FOR SHARE锁定行时,当前事务和其他事务都无法修改或删除锁定行。
Index Scan 算子说明 在索引扫描中,数据库使用语句指定的索引列,通过遍历索引树来检索行。数据库为一个值扫描索引时,发生 n 次 I/O 就能找到其要查找的值,其中 n 即 B-tree索引的高度。Index Scan通常用于检索表数据,数据库以轮流方式先读取索引块,找到
Rownum 算子说明 Rownum算子会生成伪列,它返回一个数字,表示从查询中获取结果的行编号。第一行的Rownum为1。可以使用Rownum关键字对查询结果的行编号进行条件过滤。通常出现在Rownum子句里。 使用Rownum有一定的约束条件: Rownum不可作为别名,以免SQL语句出现歧义。
WorkTable Scan 算子说明 WorkTable Scan是一种基于内存的查询优化技术,它可以将查询结果缓存在内存中,以提高查询性能。当GaussDB执行一个查询语句时,它会将查询结果存储在一个临时表中,然后使用WorkTable Scan来扫描这个临时表,以获取查询结果。WorkTable
Limit 算子说明 Limit算子限定了执行结果的输出记录数。如果增加了Limit算子,那么不是所有的行都会被检索到。 典型场景 使用带有Limit关键字的查询语句。 示例 示例:使用带有limit关键字的查询语句。 --数据准备。 gaussdb=# CREATE TABLE
GS_RESOURCE_PLANS是实例级系统表,其作为资源计划主表,记录资源计划的主体信息。 字段名称 字段类型 说明 name name 计划名称。 mandatory smallint 计划是否可删除。 1:表示不可删除。 0:表示可删除。 status name 计划的状态。 pending:表示该行仅是待决区中的行,实际不生效。
EXPLAIN 功能描述 显示SQL语句的执行计划。 执行计划将显示SQL语句所引用的表会采用什么样的扫描方式,如:简单的顺序扫描、索引扫描等。如果引用了多个表,执行计划还会显示用到的JOIN算法。 执行计划的最关键的部分是语句的预计执行开销,是指计划生成器估算执行该语句将花费多长的时间。
EXPLAIN 功能描述 显示SQL语句的执行计划。 执行计划将显示SQL语句所引用的表会采用什么样的扫描方式,如:简单的顺序扫描、索引扫描等。如果引用了多个表,执行计划还会显示用到的JOIN算法。 执行计划的最关键的部分是语句的预计执行开销,影响计划生成器估算执行该语句将花费多长的时间。
EXPLAIN 功能描述 显示SQL语句的执行计划。 执行计划将显示SQL语句所引用的表会采用什么样的扫描方式,如:简单的顺序扫描、索引扫描等。如果引用了多个表,执行计划还会显示用到的JOIN算法。 执行计划的最关键的部分是语句的预计执行开销,是指计划生成器估算执行该语句将花费多长的时间。