检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
运算符 Sort Limit Append Agg Group MergeAppend SetOp RecursiveUnion Unique LockRows Materialize Result WindowAgg StartWith Operator Rownum Unpivot
其他关键字 InitPlan Stream 父主题: 算子详解
详解 如SQL执行计划概述节中所说,EXPLAIN会显示执行计划,但并不会实际执行SQL语句。EXPLAIN ANALYZE和EXPLAIN PERFORMANCE两者都会实际执行SQL语句并返回执行信息。在这一节将详细解释执行计划及执行信息。 执行计划 以如下SQL语句为例: 1
详解 如SQL执行计划概述节中所说,EXPLAIN会显示执行计划,但并不会实际执行SQL语句。EXPLAIN ANALYZE和EXPLAIN PERFORMANCE两者都会实际执行SQL语句并返回执行信息。在这一节将详细解释执行计划及执行信息。 执行计划 以如下SQL语句为例: 1
分区剪枝相关信息 Partition Iterator 父主题: 算子详解
表访问方式 Seq Scan Index Scan Index Only Scan Bitmap Tid Scan Cte Scan Foreign Scan Function Scan Sample Scan SubQuery Scan Values Scan WorkTable
单机多核的特点,提高执行效率。SMP分为计划生成与执行两部分: SMP计划生成。一阶段计划生成:在路径生成阶段,加入并行路径,最终根据代价,决定所选择的计划。两阶段计划生成:第一步生成原有的串行计划,第二步再将串行计划改造成适应并行的计划 。 SMP执行过程。为并行执行线程之间进行数据分配、交换和汇总。
Outline是描述执行计划的重要手段,也是计划固化的持久化表示。Outline存储在数据库中,需要在不同版本之间兼容,可以指导优化器生成指定计划。内核在生成执行计划的同时,可以生成Outline。同时优化器能够使用Outline对计划进行控制,Outline是计划管理的核心前提能力。
GS_SPM_SQL_EVOLUTION GS_SPM_SQL_EVOLUTION是SPM计划管理特性下的系统视图,当前该特性在分布式下不支持。该视图用于查看当前用户的计划演进结果信息,普通用户以上权限均可以访问该视图。 表1 GS_SPM_SQL_EVOLUTION字段 名称 类型
案例:使用DN Gather减少计划中的Stream节点 DN Gather用来把分布式计划中的Stream节点去掉,把数据发送到一个节点进行计算,这样可以减少分布式计划执行时数据重分布的代价,从而提升单个查询以及系统整体的吞吐能力。不过DN Gather面向的是TP的小数据量场
GS_SPM_EVOLUTION GS_SPM_EVOLUTION系统表是用于存储计划演进结果的系统表,具备sysadmin权限的用户可以对该系统表进行读操作,但只有初始用户才可以对该系统表进行写的操作。 表1 GS_SPM_EVOLTOIN字段 名称 类型 描述 sql_namespace
GS_SPM_SQL_PARAM GS_SPM_SQL_PARAM是SPM计划管理特性下的系统视图,当前该特性在分布式下不支持。该视图用于查看当前用户的SQL参数信息,普通用户以上权限均可以访问该视图。 表1 GS_SPM_SQL_PARAM字段 名称 类型 描述 sql_namespace
outline文本,可固定当前计划的一组Hint。 status integer 计划的状态。取值范围: 0(UNACC):表示未接受的计划。 1(ACC):表示已经接受的计划。 2(FIXED):一种特殊的ACC状态的计划,计划的匹配优先级高于ACC状态的计划。 gplan boolean
案例:使用DN Gather减少计划中的Stream节点 DN Gather用来把分布式计划中的Stream节点去掉,把数据发送到一个节点进行计算,这样可以减少分布式计划执行时数据重分布的代价,从而提升单个查询效率以及系统整体的吞吐能力。不过DN Gather面向的是TP的小数据
GS_SPM_EVOLUTION GS_SPM_EVOLUTION是SPM计划管理特性中的系统表,当前该特性在分布式中不支持。它用于存储计划演进结果的系统表,具备sysadmin权限的用户可以对该系统表进行读操作,但只有初始用户才可以对该系统表进行写的操作。 表1 GS_SPM_EVOLTOIN字段
行策略时,有三种执行计划方式:生成下推语句计划、生成分布式执行计划、生成发送语句的分布式执行计划。 下推语句计划:指直接将完整的查询语句从CN发送到DN进行执行,然后将执行结果返回给CN。 分布式执行计划:指CN对查询语句进行编译和优化,生成计划树,再将计划树发送给DN进行执行,并在执行完毕后返回结果到CN。
Append 算子说明 Append用于多个关系集合的追加,同时处理包含一个或多个子计划的链表。 典型场景 带UNION的SQL语句场景。 带UNION ALL的SQL语句场景。 示例 示例1:带UNION的SQL语句场景。 --数据准备。 gaussdb=# CREATE TABLE
GS_SPM_SQL GS_SPM_SQL是SPM计划管理特性中的系统表,当前该特性在分布式中不支持。它用于存储SPM SQL相关信息的系统表,具备sysadmin权限的用户可以对该系统表进行读操作,但只有初始用户才可以对该系统表进行写操作。 表1 GS_SPM_SQL字段 名称
GS_SPM_PARAM GS_SPM_PARAM是SPM计划管理特性中的系统表,当前该特性在分布式中不支持。它用于存储SQL参数相关信息的系统表,每个SQL只存储一组参数,具备sysadmin权限的用户可以对该系统表进行读操作,但只有初始用户才可以对该系统表进行写的操作。 表1
outline文本,可固定当前计划的一组Hint。 cost double precision 计划的总代价。 user oid 创建baseline的用户。 status integer baseline的状态,可选取值有: 0(UNACC):表示未接受的计划。 1(ACC):表示已经接受的计划。 2