第5章 查询处理.ppt
《第5章 查询处理.ppt》由会员分享,可在线阅读,更多相关《第5章 查询处理.ppt(66页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第5章章 查询处理查询处理Silberschatz,Korth and Sudarshan13.2Database System Concepts本章内容特色n实实:在实现:在实现DBMS和高级应用中有用和高级应用中有用,是数据库,是数据库管理员必备知识管理员必备知识n细细:细致:细致,有有一定一定难度难度,课堂上不一定能完全理,课堂上不一定能完全理解解,需,需课课后仔后仔细细体会体会n定定:定量分析,:定量分析,比比较较不同方案用数字来作不同方案用数字来作结论结论n模模:定量分析需要数学模型:定量分析需要数学模型(先先作一些假定,忽略作一些假定,忽略一些次要的因素,用一套符号表示一些度量,
2、一些次要的因素,用一套符号表示一些度量,然然后计算除结果,可学到建立定量分析模型的方法后计算除结果,可学到建立定量分析模型的方法)Silberschatz,Korth and Sudarshan13.3Database System Concepts主要内容主要内容n查询处理基本步骤查询处理基本步骤n查询代价度量查询代价度量n选择操作选择操作n排序排序n连接操作连接操作n其他操作其他操作n表达式求值表达式求值Silberschatz,Korth and Sudarshan13.4Database System ConceptsDBMS ArchitectureQuery ExecutorBuf
3、fer ManagerStorage ManagerStorageTransaction ManagerLogging&RecoveryLock ManagerBuffersLock TablesMain MemoryUser/Web Forms/Applications/DBAquerytransactionQuery OptimizerQuery RewriterQuery ParserFiles&Access MethodsPast lecturesSilberschatz,Korth and Sudarshan13.5Database System Concepts查询处理基本步骤查询
4、处理基本步骤1.词法分析与翻译词法分析与翻译(本章本章)2.优化优化(下章下章)3.求值求值(本章本章)Silberschatz,Korth and Sudarshan13.6Database System Concepts查询处理基本步骤查询处理基本步骤 n词法分析与翻译词法分析与翻译将查询翻译成内部形式将查询翻译成内部形式,再翻译成关系代数表达式再翻译成关系代数表达式词法分析器检查语法词法分析器检查语法,验证关系验证关系n求值求值查询执行引擎以查询求值方案为输入查询执行引擎以查询求值方案为输入,执行该方案执行该方案,并返回查询结果并返回查询结果Silberschatz,Korth and
5、Sudarshan13.7Database System Concepts查询处理的基本步骤查询处理的基本步骤n求值计求值计划划在表达式上加标注以说明详细求值策略在表达式上加标注以说明详细求值策略,称为称为求值计划求值计划例如例如,可利用可利用balance上的索引来查找余额小上的索引来查找余额小于于2500的账户的账户,或者也可以执行完全的关系扫或者也可以执行完全的关系扫描描,丢弃那些余额丢弃那些余额 2500的账户的账户n查询优化查询优化在所有等价的求值计划中选择代价最低者在所有等价的求值计划中选择代价最低者利用数据库目录中的统计信息来求值代价利用数据库目录中的统计信息来求值代价如每个关系
6、的元组数如每个关系的元组数,元组大小等元组大小等Silberschatz,Korth and Sudarshan13.8Database System Concepts查询处理的基本步骤查询处理的基本步骤:优化优化n本章研究本章研究如何度量查询代价如何度量查询代价关系代数运算的求值算法关系代数运算的求值算法如何将单个运算的算法结合起来以对整个表达式求如何将单个运算的算法结合起来以对整个表达式求值值n下章研究下章研究如何优化查询如何优化查询,即如何找到具有最低求值代价的求值即如何找到具有最低求值代价的求值计划计划Silberschatz,Korth and Sudarshan13.9Databa
7、se System Concepts查询代价的度量查询代价的度量n查询代价通常用回答查询所耗费总时间来度量查询代价通常用回答查询所耗费总时间来度量n许多因素影响时间代价许多因素影响时间代价磁盘存取磁盘存取(I/O),CPU,网络通信网络通信n一般来说一般来说,磁盘存取对代价起决定性作用磁盘存取对代价起决定性作用,并且相对并且相对容易求值,磁盘存取代价的度量要考虑容易求值,磁盘存取代价的度量要考虑:寻址次数寻址次数 *average-seek-cost读块数读块数*average-block-read-cost写块数写块数*average-block-write-cost写一块的代价大于读一块的
8、代价写一块的代价大于读一块的代价写数据后要读回,以确保写成功写数据后要读回,以确保写成功Silberschatz,Korth and Sudarshan13.10Database System Concepts查询代价的度量查询代价的度量n为简单起见为简单起见,我们仅用我们仅用磁盘块传送数磁盘块传送数作为代价的度量作为代价的度量忽略忽略顺序顺序与与随机随机I/O之间的代价不同之处之间的代价不同之处忽略忽略CPU代价代价n代价依赖于内存缓冲区的大小代价依赖于内存缓冲区的大小内存多可以减少磁盘存取数内存多可以减少磁盘存取数可用于缓冲区的实际内存量取决于其他并发可用于缓冲区的实际内存量取决于其他并发
9、OS进程进程,在实际执行在实际执行之前难以确定之前难以确定我们经常用最坏情形求值我们经常用最坏情形求值,故假定只有操作所需的最小内存量可用故假定只有操作所需的最小内存量可用n实际系统要考虑实际系统要考虑CPU代价代价,区分顺序与随机区分顺序与随机I/O,考虑缓冲考虑缓冲区大小区大小n在代价公式中不包括将输出写到磁盘的代价在代价公式中不包括将输出写到磁盘的代价Silberschatz,Korth and Sudarshan13.11Database System Concepts插曲:插曲:科研方法科研方法(10/12)n借本章内容为载体,介绍一些作科研的方法借本章内容为载体,介绍一些作科研的方
10、法n原创工作原创工作 vs 非原创工作非原创工作 vs delta 研究研究1.建立模型:引入记号,变量,确定变量之间关系建立模型:引入记号,变量,确定变量之间关系,常常常简化模型,忽略次要因素,抓主要矛盾常简化模型,忽略次要因素,抓主要矛盾2.分而治之,分而治之,先先推导局部公式推导局部公式综合公式综合公式3.从公式分析,改进方向从公式分析,改进方向4.改进,试验,结论改进,试验,结论论文或成果论文或成果n建立数学模型是深入建立数学模型是深入研究研究的开始的开始Silberschatz,Korth and Sudarshan13.12Database System Concepts插曲:插曲
11、:科研方法科研方法n简化模型:简化模型:(即即忽略次要因素,抓主要矛盾)忽略次要因素,抓主要矛盾)1.传输块数传输块数number of block transfers(盘:内存)(盘:内存)2.忽略顺序和随机忽略顺序和随机I/O 的差别,忽略的差别,忽略CPU的花销的花销3.花销大小依赖于缓存大小花销大小依赖于缓存大小缓存大,磁盘传输快缓存大,磁盘传输快OS 管理缓存(进程)管理缓存(进程)常用最坏情形估计常用最坏情形估计worst case estimates在工程中的实际系统不忽略在工程中的实际系统不忽略CPU 花销,要考虑随机花销,要考虑随机和顺序的影响和顺序的影响输出时写盘的时间也忽
12、略输出时写盘的时间也忽略Silberschatz,Korth and Sudarshan13.13Database System Concepts用于代价估算的统计信息用于代价估算的统计信息nnr:关系关系r 中的元组个数中的元组个数nbr:包含包含r 中元组的块数中元组的块数nsr:r 中元组的大小中元组的大小nfr:r 的块因子的块因子 即即,能放入一块之中的能放入一块之中的r 的元组数的元组数nV(A,r):r 中出现的中出现的A属性上的不同值的个数属性上的不同值的个数,等于等于A(r)的大小的大小nSC(A,r):关系关系r 中属性中属性A的的选择基数选择基数,满足满足A上等值上等值条
13、件的平均记录数条件的平均记录数n若若r 中元组在文件中中元组在文件中连续存放连续存放,则则:Silberschatz,Korth and Sudarshan13.14Database System Concepts关于索引的目录信息关于索引的目录信息nfi:索引索引i 的内节点的平均扇出的内节点的平均扇出,适用于树适用于树结构索引结构索引,如如B+树树nHTi:索引索引i 的层数的层数 即高度即高度对于关系对于关系r上上A 属性的平衡树索引属性的平衡树索引(如如B+-树树),HTi=logfi(V(A,r)n对于散列索引对于散列索引,HTi 为为1nLBi:索引索引i 的底层索引块数的底层索引
14、块数 即索引叶即索引叶子层的块数子层的块数Silberschatz,Korth and Sudarshan13.15Database System Concepts选择操作选择操作n文件扫描文件扫描 定位并读取满足选择条件的记录的搜索算定位并读取满足选择条件的记录的搜索算法法n算法算法A1(线性搜索线性搜索):扫描每个文件块并测试所有记录是扫描每个文件块并测试所有记录是否满足选择条件否满足选择条件求值代价求值代价(扫描磁盘块数扫描磁盘块数)=br br 表示包含有关系表示包含有关系r 的记录的块数的记录的块数若选择是针对键属性的若选择是针对键属性的,则代价则代价=(br/2)找到记录后终止找到
15、记录后终止线性搜索的可用性不受下列因素影响线性搜索的可用性不受下列因素影响选择条件选择条件文件中记录的顺序文件中记录的顺序有无索引有无索引Silberschatz,Korth and Sudarshan13.16Database System Concepts选择操作选择操作(续续)n算法算法A2(二叉搜索二叉搜索):如果文件有序且选择条件如果文件有序且选择条件是在排序属性上的相等性比较即可用是在排序属性上的相等性比较即可用n假设关系的块连续存储假设关系的块连续存储n求值代价求值代价(扫描的磁盘块数扫描的磁盘块数):log2(br)通过对块的二叉搜索来定位通过对块的二叉搜索来定位第一条元组的代
16、价第一条元组的代价再加上包含满足选择条件的记录的块数再加上包含满足选择条件的记录的块数第第6章讨论如何求这个代价章讨论如何求这个代价Silberschatz,Korth and Sudarshan13.17Database System Concepts利用索引的选择利用索引的选择n索引扫描索引扫描 使用索引的搜索算法使用索引的搜索算法选择条件必须针对索引的搜索键选择条件必须针对索引的搜索键nA3(候选键上的主索引候选键上的主索引,相等相等):检索满足对应等式条件的单个记录检索满足对应等式条件的单个记录Cost=HTi+1nA4(非键属性上的主索引非键属性上的主索引,相等相等):检索多条记录检
17、索多条记录记录位于连续的块上记录位于连续的块上Cost=HTi+包含检索记录的块数包含检索记录的块数nA5(辅助索引搜索键上的相等辅助索引搜索键上的相等)若搜索键是候选键则检索单个记录若搜索键是候选键则检索单个记录Cost=HTi+1若搜索键不是候选键则检索多个记录若搜索键不是候选键则检索多个记录Cost=HTi+检索到的记录数检索到的记录数可能非常昂贵可能非常昂贵!各记录可能位于不同的块上各记录可能位于不同的块上 对每条检索到的记录都有一次块存取对每条检索到的记录都有一次块存取Silberschatz,Korth and Sudarshan13.18Database System Conce
18、pts涉及比较的选择涉及比较的选择n为实现形如为实现形如 A V(r)或者或者 A V(r)的选择的选择,可以使用可以使用线性文件扫描或二叉搜索线性文件扫描或二叉搜索n或者按如下方式使用索引或者按如下方式使用索引:nA6(主索引主索引,比较比较)(关系在关系在A上排序上排序)对对 A V(r)利用索引找到第一条利用索引找到第一条 v 的元组的元组,再从该处顺序再从该处顺序扫描关系扫描关系对对 A V(r)顺序扫描关系直至第一条顺序扫描关系直至第一条 v 的元组的元组;不用索引不用索引nA7(辅助索引辅助索引,比较比较)对对 A V(r)利用索引找到第一条利用索引找到第一条 v 的索引项的索引项
19、,再从该处顺再从该处顺序扫描索引序扫描索引,查处指向记录的指针查处指向记录的指针.对对 A V(r)只需扫描索引的叶页来找出指向记录的指针只需扫描索引的叶页来找出指向记录的指针,直直至第一条至第一条 v 的项的项在每种情况下在每种情况下,检索被指向的记录时检索被指向的记录时:每条记录需要一次每条记录需要一次I/O如果有很多记录需要取出如果有很多记录需要取出,则线性文件扫描可能更廉价则线性文件扫描可能更廉价!Silberschatz,Korth and Sudarshan13.19Database System Concepts复杂选择的实现复杂选择的实现合取合取:1 2.n(r)nA8(利用一
20、个索引的合取选择利用一个索引的合取选择)选择一个选择一个 i 和算法和算法A1到到A7的组合使得的组合使得 i(r)的代价最小的代价最小将元组取进内存缓冲区之后再测试其他条件将元组取进内存缓冲区之后再测试其他条件nA9(利用多键索引的合取选择利用多键索引的合取选择)如果可能如果可能,使用合适的复合使用合适的复合(多键多键)索引索引nA10(求标识符交集的合取选择求标识符交集的合取选择)需要带有记录指针的索引需要带有记录指针的索引对每个条件使用对应的索引对每个条件使用对应的索引,再求所有得到的记录指针集合的交集再求所有得到的记录指针集合的交集然后从文件读取记录然后从文件读取记录如果某些条件没有对
21、应的索引如果某些条件没有对应的索引,则对已读取记录进行该条件的测试则对已读取记录进行该条件的测试.Silberschatz,Korth and Sudarshan13.20Database System Concepts复杂选择的算法复杂选择的算法析取析取:1 2.n(r)nA11(利用标识符的并集求析取选择).应用于所有条件都有可用的索引的情况应用于所有条件都有可用的索引的情况.否则使用线性扫描否则使用线性扫描利用每个条件的对应索引利用每个条件的对应索引,再求所得到的各记录指针集再求所得到的各记录指针集的并集的并集然后从文件读取记录然后从文件读取记录Silberschatz,Korth an
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第5章 查询处理 查询 处理
限制150内