12 Query Planning and Optimization
Query Planning and Optimization
catalog 是一个记录元数据信息的文件
The Physical Plan
Query Optimization(QO)
Heuristics/Rules
- 重写查询来去除那些无效的条件
- 这些技巧需要访问 catalog,但是它们不需要访问数据
Predicate Pushdown
Replace Cartesian Product
Projection Pushdown
Equivalence
Architecture Overview
Cost-based Search
- 使用一个模型来预测执行一个计划的成本
- 遍历多种计划,选择一个成本最小的计划来执行
Bottom-up Optimization
使用动态规划,自底向上构建查询计划成本最低的计划
- single-relation query palnning
system R optimization 将逻辑计划构建为左深树
Top-Down Optimization
自顶向下的优化控制权更多,我们可以从一个计划开始逐步细化过程
Nested Sub-queries
相关子查询很容易被扁平化为 join 的查询
不相关的子查可以拆分成不同的语句进行执行
Rewrite
Decomposing Queries
Expression rerwriteing
Cost Estimation
Physical Costs
predict CPU-cycles, I/O, cache misses, RAM consumption, network messages…
Depends heavily on hardwareLogical Costs
estimate output size per operator
independent of the operator algorithm
need estimations for operator result sizes
selection cardinality
可以使用 selection cardinality 来推测输出的大小
Statistics
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 LZY的Code生活!