4 逻辑分解优化

文章目录

  • 逻辑分解是逻辑优化一部分
    • 这里和物理优化产紧密
  • 重写中,Query->Jointree通过Rangetblentry组织起来,
    • 逻分中,所有Rangetblentry将建立一个对应Reloptlnfo,
    • Rangetblentry在物理优化时不适用,用Reloptlnfo代替
  • Rangetblentry对应范围表
    • 它对表描述,属逻辑层面,
      • 内部没提供和物理代价及物理路径相关的成员变量
    • Reloptlnfo: 生成物理连接路径及计算路径代价,属物理层面。

  • 査询树中约東条件是个表达式,只保存表达式本身所需内容
  • 逻辑分解将这些裸用Restrictlnfo封装
    • 这样就可扩展表达式内容,
    • 如在Restrictlnfo中记录约束条件在物理优化中需要的变量
  • Query中,约束条件(表达式)存放位置就是它原始的语法位置
    • 逻辑分解中,对约束条件尝试下推
    • Restrictlnfo是为在下推时能更好和Reloptlnfo结合

  • 逻辑分解阶段会基于等价类推理,生成一些隐含的约束条件,
  • A=B和约束条件B=C能够推导出新的约束条件A=C,
  • A=B和SORT(B)能推出A和B同样有序
  • A=B和B=5能够推导出新的约束A=5,
  • 基于这种推理在物理优化阶段能够生成更丰富的连接路径。

  • 关系数据库引入外和半连接,很多关系代数中的经典理论不适用
  • 约束条件下推过程中
    • 由于外连接的引入导致一些连接条件被延迟下推(delay)。
  • 谓词下推、连接顺序交换、基于等价类的推理是査询优化难点,
    • 没透彻理解逻辑分解优化,那么物理优化理解就更难
发布了456 篇原创文章 · 获赞 255 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/zhoutianzi12/article/details/104040888