技术精讲:PostgreSQL执行计划explain

入口函数为ExplainOnePlan,他会创建一个查询描述结构queryDesc,然后进入执行器执行ExecutorStart、ExecutorRun、ExecutorFinish、ExecutorEnd。当然执行explain时可以添加analyze参数,当添加这个参数时才会执行ExecutorRun即真正执行该查询。
打印执行计划是由函数ExplainPrintPlan完成,该函数调用ExplainNode,由入参PlanState结构传递Plan tree。该PlanState有initPlan(非相关子查询)、lefttree、righttree、subPlan等。遍历计划树就是对这几个节点链进行递归遍历。可以看到,他打印完本节点信息后,若有左右子树则递归进行ExplainNode,然后对特殊节点进行特殊处理,使用ExplainMemberNodes、ExplainNode和ExplainCustomChildren函数进行处理。最后若有子计划则递归遍历subPlan。
详细打印信息可通过上面图的流程框架进入每个函数深入阅读理解。
GreenPlum的GPCC可以动态以树的形式打印执行计划,显示执行计划执行的进度。理解explain如何打印执行计划及这些节点怎么遍历后,可以更加方便理解推测GPCC打印执行计划的机制(因为gpcc还未开源)。
同时执行计划的执行时间从什么时候开始,到什么时候结束,也可以通过函数ExplainOnePlan看INSTR_TIME_SET_CURRENT(starttime);类似的时间。
最新活动更多
-
10 阿里AI需要算一笔账了
- 1 GPT-6要来了,但AI行业早不跟 OpenAI玩了
- 2 火爆的“Token经济学”,关乎你的钱包、职场和未来消费 | 人人能懂的产业报告
- 3 资本巨头纷纷抽身,为何中小投资者仍为AI狂热加码?
- 4 大厂财报中的AI图鉴:营收单列、玩杠杆、商业画饼
- 5 从百度到Meta,科技巨头的 AI 组织战,开打了
- 6 2026年3月,国内具身智能机器人企业融资汇总
- 7 华勤财报发布:收入规模破1700亿,利润增长近40%
- 8 宇树科技招股书透视:中外具身智能玩家生存竞速
- 9 大涨30%!智谱 AI 财报出炉:营收暴增132%,API 增长3倍,市值破 4000 亿
- 10 谷歌Gemma 4遭破解!实测:伪造支票、找盗版电影,有求必应


分享














发表评论
登录
手机
验证码
手机/邮箱/用户名
密码
立即登录即可访问所有OFweek服务
还不是会员?免费注册
忘记密码其他方式
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论