cmu15445 查询优化- 上

date
Jul 17, 2023
slug
query-optimizer-1
status
Published
tags
Database
15445
summary
本文介绍了查询优化的相关内容,包括关系代数等价、谓词下推、逻辑查询优化、嵌套子查询、表达式重写和基于成本的查询规划等。通过使用静态规则和启发式方法来优化查询计划,以及使用成本模型来帮助执行更高级的查询优化,可以提高数据库的性能。
type
Post

AGENDA

notion image

RBO

1. Relational Algebra Equivalences 等价

notion image
如果关系表达式等价输出就是等价的

PREDICATE PUSHDOWN 谓词下推

notion image
notion image
最基础的原理 关系代数表达式等价
 
notion image
notion image
  • inner join 符合交换律
  • inner join 符合结合律
  • 2 表 join 至少有 4 的 2 次方种路径
  • 性能短板
notion image
  • 提前物化:执行过程种就把最后要输出的列找到,把别的列干掉
  • 延迟物化:不管最后输出哪几列,join 时候就管那个连接键,输出的时候在回表去查
  • 列存永远是最后物化
notion image
 
 

2. LOGICAL QUERY OPTIMIZATION

notion image
  • 写规则去模式匹配
  • 不能比较好坏 直接生成
notion image

SPLIT CONJUNCTIVE PREDICATES

notion image
notion image
notion image
notion image
  • 笛卡尔积和谓合起来变成带有等价连接的 join
notion image
 

3. NESTED SUB-QUERIES

notion image

REWRITE

notion image
打散写成一句
 

DECOMPOSE

notion image
notion image
notion image

4. EXPRESSION REWRITING

notion image
notion image
notion image
notion image
notion image
notion image
notion image
notion image
notion image
notion image
 

CBO

COST-BASED QUERY PLANNING

notion image
 
  • 估计仅在内部有意义
  • 这与我们下节课将讨论的计划枚举步骤无关。
notion image
  • Choice 1:Physical Costs
    • 数据库一体机上
  • Choice 2:Logical Costs
  • Choice 3:Algorithmic Costs
notion image
  • 磁盘开销模型

PG COST MODEL

notion image
  • 举例 PG 的开销
notion image
  • 写死的魔法数字来估计代价
  • 默认设置显然适用于没有大量内存的磁盘驻留数据库: 在内存中处理元组比从磁盘读取元组快400倍,顺序I/O比随机I/O快4倍。
notion image
  • 注意:不幸的是,没有明确定义的方法来确定成本变量的理想值。它们最好作为特定安装将收到的整个查询组合的平均值。这意味着仅仅根据几个实验来更改它们是非常危险的。
 

DB2 COST MODEL

notion image
 
  • 系统目录中的数据库特征
  • 硬件环境(微基准测试)
  • 存储设备特性(微基准)
  • 通信带宽(仅分布式)
  • 内存资源(缓冲池、排序堆)
  • 并发环境
 

CONCLUSION

notion image
 
我们可以使用静态规则和启发式方法来优化查询计划,而无需了解数据库的内容。 我们使用成本模型来帮助执行更高级的查询优化
 
 

© Phoenix Z 2021 - 2025