数据库系统概念-查询处理

选择运算

  • A1:线性搜索,平均代价Br/2,最坏情况Br
  • A2: 二分搜索,属性有序,代价[logBr]

索引选择

  • A3: (主索引,码属性等值比较)可以检索到唯一一条满足条件的记录,代价:B+树树高加上读取一条记录I/O代价
  • A4: (主索引,非码属性等值比较)主索引可以检索到多条满足条件的记录,且多条记录顺序存储,代价:B+树树高加上具有搜索码值的盘块数
  • A5: (辅助索引,等值比较)索引字段为码属性直接得到一条记录.索引字段为非码属性,得到多条记录

比较选择

  • A6: (主索引,比较)B+树有序主索引
  • A7: (辅助索引,比较)有序辅助索引,小值从小段开始,大值从 大端开始

比较选择

  • A8: 索引合取(取交)先现则满足一个条件的记录,加入缓冲区,在缓冲区中验证其他条件
  • A9: (组合所用合取)直接利用合适的符合索引查询
  • A10: (记录标识符的交)每个条件遍历标记一边,取所有被标记的交际
  • A11: (记录标识符的并)逐一扫描索引获取满足单个条件的元祖指针,将所有指针集做并集

连接运算

  • 嵌套循环(重名属性会出现)
  • 块嵌套循环,每次在块内循环嵌套检查元组匹配,有效减少比较次数
  • 索引嵌套循环连接:嵌套循环连接的内层如果有索引,使用索引代替循环
  • 归并链接:用于自然链接和等值连接
    • 双有序直接有序归并
    • 单有序,归并后,对索引项进行按地址排序,可实现有序
  • 消除重复: 代价高,明确声明是否去重
    • 归并/散列可直接在过程中消除重复
  • 集合
    • 并集: Hr建立散列索引,将Hs中元组加入到上诉散列索引中,条件是该元组不在散列索引中,散列索引最终即结果
    • 交集: Hr建立散列索引,对Hs中元组探查散列索引,出现在散列索引的记录放入结果
    • 差集: Hr建立散列索引,对Hs中元组探查散列索引,出现在散列索引的记录从索引中删除

外连接

- 计算连接法:
    - 左外连接:计算链接,将左集未参与链接集合扩展放入结果
    - 右外连接:计算链接,将右集未参与链接集合扩展放入结果
    - 全外连接:计算链接,将左右集未参与链接集合扩展放入结果
- 嵌套修改法
    - 左外连接:左边外循环,右表内循环,内外匹配加入结果,内部均不匹配的外记录也加入结果
    - 右外连接:右边外循环,左表内循环,内外匹配加入结果,内部均不匹配的外记录也加入结果
- 扩展归并连接获得自然链接和等值全外联
    - 归并完成,将不与另一关系任一记录匹配的记录加入结果

表达式计算

  • 实体化:中间结果实体化,供下一层运算,磁盘代价高,双缓冲降低磁盘代价
  • 流水线:生产者驱动流水线,需求驱动流水线
posted @ 2016-12-20 14:22  zeroArn  阅读(755)  评论(0编辑  收藏  举报