开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第35天
一、本篇笔记重点内容:
- 分布式查询的概念
- 搜索空间
- 搜索策略
二、 详细知识点介绍:
分布式查询的基本概念
- 基于代价的优化
- 搜索空间(Solution space)
- 等价的代数表达式 (query trees)
- 代价函数(Cost function)
- I/O 代价 + CPU 代价+ communication代价
- 不同的分布环境中各因素权重不同 (LAN vs WAN)
- 最大吞吐量
- 搜索算法(Search algorithm)
- 如何在解决空间中移动
- 穷举搜索,启发式算法 (递归改进、模拟退火、遗传法等)
查询优化过程
搜索空间(Search Space)
- 搜索空间由可选择的执行计划描述
- 侧重Join树
- 若存在n个关系,有O(N!)等价的Join树 例如, select ENAME,RESP From EMP,ASG,PROJ Where EMP.ENO=ASG.ENO And ASG.PNO=PROJ.PNO
搜索策略(Search Strategy)
- 如何在搜索空间中构建查询计划
- 确定的(Deterministic)
- 开始于基关系,每步加一个关系构建执行计划
- 动态规划法:宽度优先(breadth-first)
- 贪婪法: 深度优先(depth-first)(只构造一个计划)
- 随机的(Randomized)
- 从一个特定的点起始搜索最优执行计划 (首先应用贪婪法构建一个或多个执行计划,接着通过邻居关系替换来改进执行计划)
- 综合考虑优化时间和执行时间
- 适合大于 5-6 个关系
- 模拟退火(Simulated annealing)
- 递归改进(Iterative improvement)
基本概念
分布执行过程实际上就是从查询场地发出查询命令、从数据源获取数据、确定最佳的执行场地和返回执行结果的过程。
- 查询场地:指发出查询命令和存储最终查询结果的场地。查询场地也称最终结果文件。
- 源数据场地:指查询命令需要访问的数据副本所在的场地,可能涉及到一个或一个以上的场地。源数据场地也称源数据文件。
- 执行场地:指查询操作执行所在的场地。执行场地可以和查询场地或源数据场地处于同一场地,也可不处于同一场地。执行场地也称中间结果文件。
分布查询的存取优化的目标
- 远程网:主要考虑通信开销,使通信代价最小。
- 局域网:需同时考虑通信代价和本地处理代价, 使综合代价最小。
- 优化的内容
- 优化是在片段查询的基础上进行的实际物理副本查询操作的优化。具体如下:
-
输入:片段查询表达式
-
输出:分布执行计划
代价函数(the total time or the response time)
- 总的时间(Total Time)-所有时间组件的和
- 减少每一个组件的时间代价
- 尽可能减少每个代价组件的代价
- 优化资源利用率,增加系统吞吐率
- 响应时间(Response Time)-从查询开始到执行结束所用的时间
- 尽可能并行执行(Do as many things as possible in parallel)
- 增加总的活动(activity)可能会增加总时间
- 假设只考虑通信代价
- 总时间=2消息启动时间+单位传输代价(x+y)
- 响应时间=max(从1传输x到3的时间,从2传输y到3的时间)