更新时间:2026-07-28 GMT+08:00
分享

计划生成

前章节介绍了各类扫描路径与连接路径的生成,CBO优化器中会根据代价对这些路径进行筛选并保留最优路径。筛选主要分为两步:第一步是根据初级代价决定是否要创建连接路径,连接路径根据算法的不同、连接顺序的不同以及底层扫描方式的不同可以生成很多条,所以初步筛选的目的是过滤掉一些明显较差的路径,从而节省生成执行计划的时间,但是因为扫描路径种类有限(基本类型只有顺序扫描、索引扫描、位图扫描三种),通常不做筛选,尽量保留可以给连接路径提供更多的选择机会。第二步,在完成初步筛选后对路径节点补充新的代价,如表达式处理的代价、LIMIT约束代价等,这样生成最终可以比较的计划,再根据启动代价、整体代价等影响因素比较决策选取最优路径。选出最优路径后,为了方便执行器的执行,会进一步将其转换为适合执行器的PlanTree,从而执行器就可以执行一个完整的计划。

相关文档