数据库系统概念(机械工业出版社,第六版)复习——第十一章:查询处理和查询优化
来源:互联网 发布:中兴网络机顶盒usb 编辑:程序博客网 时间:2024/05/16 00:45
第十一章 查询处理和查询优化
查询优化
在所有等效执行计划中选择具有最小查询执行代价的计划
查询代价的度量
只用传输磁盘块数以及搜索磁盘次数来度量查询计算计划的代价
tT – 传输一个块的时间
tS – 磁盘平均访问时间(磁盘搜索时间+旋转延迟)
传输 b 个块以及执行 s 次磁盘搜索的操作代价:
b * tT + s * tS
可以通过使用额外的缓冲空间来减少磁盘 I/O 操作。
选择运算
利用文件扫描和索引的选择:
算法A1(线性搜索):
时间代价= br次磁盘块传输 + 1次磁盘搜索= br*tT + tS。
br代表文件中的磁盘块数
对作用在码属性上的选择操作来说,系统在找到所需记录以后可以立即停止
算法A1(线性搜索,码等值比较):
时间代价 = (br /2) 次磁盘块传输 + 1 次磁盘搜索
最坏情况下,需要br个块传输
算法A2(B+树主索引,码属性等值比较):
Cost = (hi + 1) * (tT + tS)
上述公式:索引查找穿越树的高度,再加一次I/O取记录,每个这样的I/O操作需要一次搜索和一次块传输。hi为B+树高度
算法A3(B+树主索引,非码属性等值比较):
Cost = hi * (tT + tS) + tS + tT * b
上述公式:树的每层一次搜索,第一个块的搜索,b是包含具有指定搜索码的块数,假定这些块是顺序存储的叶子块,并且不需要额外搜索
算法A4(B+树辅助索引,码属性等值比较):
Cost = (hi + 1) * (tT + tS)
上述公式:和A2相似。索引查找穿越书的高度,再加一次I/O取记录,每个这样的I/O操作需要一次搜索和一次块传输
算法A4(B+树辅助索引,非码属性等值比较):
Cost = (hi + n) * (tT + tS)
上述公式:n是所取记录数,索引查找的代价和A3相似,但是每条记录可能在不同的块上,这需要每条记录一次搜索。如果n比较大,查询代价非常大
涉及比较的选择:
算法A5(B+树主索引,比较):
Cost = hi * (tT + tS) + tS + tT * b
上述公式:和A3非码相似。树的每层一次搜索,第一个块的搜索,b是包含具有指定搜索码的块数,假定这些块是顺序存储的叶子块,并且不需要额外搜索
算法A6(B+树辅助索引,比较):
Cost = (hi + n) * (tT + tS)
上述公式:和A4非码相似。n是所取记录数,但是每条记录可能在不同的块上,这需要每条记录一次搜索。如果n比较大,查询代价非常大
连接运算
嵌套循环连接、块嵌套循环连接、索引嵌套循环连接、归并连接、散列连接
表达式计算
计算一个完整表达式树的两种方法:
物化:输入一个关系或者已完成的计算,产生一个表达式的结果,在磁盘中物化它,重复该过程。
流水线:一个正在执行的操作的部分结果传送到流水线的下一个操作,使得两操作可同时进行。
查询优化
查询优化就是从多个可能的策略中,找出最有效的查询执行计划的一种处理过程。
优化一方面可以在关系代数级别发生,另一方面是为处理查询选择一个详细的策略,比如执行算法、选择索引等。
等价规则
等价性:如果两个关系代数表达式在所有有效数据库实例中都会产生相同的元组集,则称它们是等价的。(元组的顺序是无关紧要的)
- 数据库系统概念(机械工业出版社,第六版)复习——第十一章:查询处理和查询优化
- 数据库系统概念(机械工业出版社,第六版)复习——第八章:关系数据库设计
- 数据库系统概念(机械工业出版社,第六版)复习——第二章:关系模型简介
- 数据库系统概念(机械工业出版社,第六版)复习——第三章:SQL
- 数据库系统概念(机械工业出版社,第六版)复习——第十二章:事务管理
- 数据库系统概念(机械工业出版社,第七版)复习——第六章:数据库设计和E-R模型
- 数据库系统概念(机械工业出版社,第六版)复习——第十章:数据存储和数据存取
- 数据库系统概念(机械工业出版社,第六版)复习——第一章:引言
- 计算机网络(机械工业出版社,第五版)复习——第一章:引言
- 设计文档(内容来自《软件工程》——机械工业出版社)
- 数据库系统概论-009: 关系查询处理和查询优化
- 【数据库系统概论】-关系查询处理和查询优化
- 程序员面试笔试宝典 —机械工业出版社—程序设计基础(第7章)
- 程序员面试笔试宝典 —机械工业出版社—程序设计基础(第7章)
- 第9章 关系查询处理和查询优化(数据库系统概论)
- 数据库查询处理和优化
- 数据库系统概念-查询处理
- 课程复习——数据库系统概论(第4版 王珊 萨师煊 高等教育出版社)—— 第十一章 并发控制
- Java类 属性 构造方法 方法 对象。+一个模拟银行存取款^_^
- tf.train.ExponentialMovingAverage解析
- android 生成arr包或 jar包
- 蛇形三角填数
- 2017年6月19
- 数据库系统概念(机械工业出版社,第六版)复习——第十一章:查询处理和查询优化
- 大卫谈学习4:为何你会一年经验用十年?
- OKHttp源码解析
- RecSys’16 Workshop on Deep Learning for Recommender Systems (DLRS)
- RabbitMQ分布式消息队列服务器(一、Windows下安装和部署)
- Markov Chain Monte Carlo(1)
- SocketTimeoutException,Caused by: libcore.io.ErrnoException: recvfrom failed: EAGAIN (Try again)
- cudaMemcpy与cudaMemcpyAsync的区别
- 第二阶段--最终作业