分布式查询的存取优化 | 「掘金日新计划 · 12 月更文挑战」

107 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第35天

一、本篇笔记重点内容:

  • 分布式查询的概念
  • 搜索空间
  • 搜索策略

二、 详细知识点介绍:

image.png

分布式查询的基本概念

  • 基于代价的优化
  • 搜索空间(Solution space)
  1. 等价的代数表达式 (query trees)
  • 代价函数(Cost function)
  1. I/O 代价 + CPU 代价+ communication代价
  2. 不同的分布环境中各因素权重不同 (LAN vs WAN)
  3. 最大吞吐量
  • 搜索算法(Search algorithm)
  1. 如何在解决空间中移动
  2. 穷举搜索,启发式算法 (递归改进、模拟退火、遗传法等)

查询优化过程

image.png

搜索空间(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)
  1. 开始于基关系,每步加一个关系构建执行计划
  2. 动态规划法:宽度优先(breadth-first)
  3. 贪婪法: 深度优先(depth-first)(只构造一个计划)
  • 随机的(Randomized)
  1. 从一个特定的点起始搜索最优执行计划 (首先应用贪婪法构建一个或多个执行计划,接着通过邻居关系替换来改进执行计划)
  2. 综合考虑优化时间和执行时间
  3. 适合大于 5-6 个关系
  4. 模拟退火(Simulated annealing)
  5. 递归改进(Iterative improvement)

基本概念

分布执行过程实际上就是从查询场地发出查询命令、从数据源获取数据、确定最佳的执行场地和返回执行结果的过程。

  • 查询场地:指发出查询命令和存储最终查询结果的场地。查询场地也称最终结果文件。
  • 源数据场地:指查询命令需要访问的数据副本所在的场地,可能涉及到一个或一个以上的场地。源数据场地也称源数据文件。
  • 执行场地:指查询操作执行所在的场地。执行场地可以和查询场地或源数据场地处于同一场地,也可不处于同一场地。执行场地也称中间结果文件。

分布查询的存取优化的目标

  • 远程网:主要考虑通信开销,使通信代价最小。
  • 局域网:需同时考虑通信代价和本地处理代价, 使综合代价最小。
  • 优化的内容
  • 优化是在片段查询的基础上进行的实际物理副本查询操作的优化。具体如下:
  •      输入:片段查询表达式
    
  •      输出:分布执行计划
    

代价函数(the total time or the response time)

  • 总的时间(Total Time)-所有时间组件的和
  1. 减少每一个组件的时间代价
  2. 尽可能减少每个代价组件的代价
  3. 优化资源利用率,增加系统吞吐率
  • 响应时间(Response Time)-从查询开始到执行结束所用的时间
  1. 尽可能并行执行(Do as many things as possible in parallel)
  2. 增加总的活动(activity)可能会增加总时间

image.png

  • 假设只考虑通信代价
  • 总时间=2消息启动时间+单位传输代价(x+y)
  • 响应时间=max(从1传输x到3的时间,从2传输y到3的时间)