sql执行流程疑问

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】 4.3.1
【问题描述】清晰明确描述问题
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

怎么感觉怪怪的, 哪位老师能介绍下?

image
历史版本的。 感觉新版本的 不太对呢?

代码生成有给了执行计划 ??

如果没有命中执行计划 会重新解析的 在生成执行计划
你可以查询下面的视图 看看执行计划是否被命中
GV$OB_PLAN_CACHE_PLAN_STAT

为什么 经过 优化器–代码生成器—又给了 执行计划。

代码生成器不是应该给执行器了吧

看着这个图 挺好理解的呀 是两个 一个是有缓存的情况 一个是没有缓存的情况 如果没有计划缓存 要生成计划缓存的

image

这个代码生成的 作用是啥? 生成了啥

代码生成器会负责把逻辑执行计划转化成执行引擎可以执行的物理执行计划。该物理执行计划本质上是由物理执行算子组成的一棵树。

都生成物理执行计划了 ,是不是应该给 执行器 去执行了 ?

image
这样的吗??

新版本中还有执行器这个概念不?

是的执行器这个概念是存在的https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000002013988

如果给了执行器 下次在执行的时候 还要解析么?代码生成器 生成以后 要把计划添加到计划缓存中 下次才能被命中 执行计划

你这个图高级啊 。发个链接

不好意思 文档不对外 大致的流程 就是这样的 其实你发的图 画的省了几个步骤 不容易理解 文档的链接的发一下 看看能不能让文档的同学优化一下

1 个赞

https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000000818939

好的 已经反馈给文档的同学了