4 逻辑分解优化
文章目录 4.1 创建RelOptInfo 4.1.1 RelOptInfo结构体 逻辑分解和物理优化产紧密 重写中,Query->Jointree通过Rangetblentry组织 逻分中,Rangetblentry将建立对应Reloptlnfo Rangetblentry对应范围表 对表描述,属逻辑层面 内部没提供和物理代价及物理路径相关的成员变量 Reloptlnfo: 生成物理连接路径及计算路径代价,属物理层面 査询树中约東条件是表达式,只保存表达式本身所需内容 逻辑分解将这些裸用Restrictlnfo封装 这样就可扩展表达式内容 Restrictlnfo中记录约束条件在物理优化中需要的变量 Query中,约束条件存放位置就是它原始语法位置 逻辑分解中,对它尝试下推 Restrictlnfo是为在下推时能更好和Reloptlnfo结合 逻辑分解阶段基于等价类推理,生成隐含约束条件, A=B和约束条件B=C能够推导出新的约束条件A=C 基于这种推理在物理优化时能生成更丰富的连接路径 关系数据库引外和半连接,很多关系代数中的经典理论不适用 约束条件下推过程中 由于外连接引入导致一些连接条件被延迟下推(delay) 谓词下推、连接顺序交换、基于等价类的推理是査询优化难点 没透彻理解逻辑分解优化,物理优化理解就更难 4.1 创建RelOptInfo 查询树