南大通用GBase 8a是基于Share-Nothing架构的分布式MPP并行数据库(gbase database),其SQL执行计划是数据库查询优化器对用户输入SQL语句,经过语法解析、语义校验、代价估算、路径择优后,生成的一套分布式并行执行方案,明确了SQL在集群各节点的数据扫描、关联、聚合、排序、数据重分布等全流程执行逻辑与资源调度方式。
执行计划是GBase 8a SQL性能调优的核心依据,核心作用是帮助运维、开发人员定位慢SQL瓶颈、识别低效执行逻辑、验证优化效果,规避全表扫描、无效数据迁移、冗余排序等性能问题。与传统单机数据库不同,GBase 8a执行计划分为集群层分布式计划和节点层单机执行计划,天然适配多节点并行计算、数据分片存储的集群特性。
GBase 8a执行计划架构原理
GBase 8a采用双层执行架构,执行计划对应分为两个层级,协同完成分布式查询:
1、集群层(GCluster)执行计划
作为全局调度核心,负责接收客户端SQL,完成SQL重写、分布式代价计算、执行路径规划、任务拆分与节点分发。主要决策数据重分布策略、跨节点JOIN/聚合方式、并行任务拆分规则,是GBase 8a分布式执行的核心,决定SQL整体执行效率。
2、节点层(GNode)执行计划
集群拆分的子任务下发至各个数据节点后,单节点生成的单机执行计划,负责本地分片数据的扫描、过滤、局部聚合、局部排序等单机运算,充分利用单节点CPU、IO资源,实现多节点并行执行。
3、核心执行特性
•并行执行:优化器自动根据数据分片、节点负载,将查询任务分摊至多个GNode节点并行执行,最大化集群算力;
•动态优化:支持根据表数据分布、数据量、统计信息,自动选择静态执行(无数据迁移)或动态重分布执行(需跨节点数据迁移);
•SQL重写优化:自动对子查询、关联查询、聚合语句进行等价重写,优化执行链路,例如将exists子查询优化为半连接(semi-join)。