欢迎光临散文网 会员登陆 & 注册

openGauss内核计划分析(六):执行生成

2022-08-02 16:23 作者:Gauss松鼠会  | 我要投稿

SQL语句解析完成后被解析成Query结构,在进行优化时是以Query为单位进行的,Query的优化分为基于规则的逻辑优化(查询重写)和基于代价的物理优化(计划生成),主入口函数为subquery_planner。subquery_planner函数接收Query(查询树),返回一个Plan(计划树)。

subquery_planner函数由函数standard_planner调用,standard_planner函数由exec_simple_query->pg_plan_queries->pg_plan_query->planner函数调用。standard_planner将Query(查询树)生成规划好的语句,可用于执行器实际执行。

仍然以前文的join列子来说明

在planner函数打断点,用gdb查看standard_planner返回的PlannedStmt


将Query规划后得到PlannedStmt

可以看到,Plannedstmt 和explain 执行计划是一致的:


openGauss内核计划分析(六):执行生成的评论 (共 条)

分享到微博请遵守国家法律