《查询处理步骤》ppt课件_第1页
《查询处理步骤》ppt课件_第2页
《查询处理步骤》ppt课件_第3页
《查询处理步骤》ppt课件_第4页
《查询处理步骤》ppt课件_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、查询处置步骤 查询分析查询分析首先,对查询语句进展扫描、词法分析和语法分析。首先,对查询语句进展扫描、词法分析和语法分析。查询检查查询检查根据数据字典对合法的查询语句进展语义检查,即检查语句中的根据数据字典对合法的查询语句进展语义检查,即检查语句中的数据库对象能否存在和能否有效。数据库对象能否存在和能否有效。RDBMS普通用查询树普通用查询树query tree或称为语法分析树,来表示扩展的关系代数表达式。或称为语法分析树,来表示扩展的关系代数表达式。查询优化查询优化查询优化就是选择一个高效执行的查询处置战略。按照优化的层查询优化就是选择一个高效执行的查询处置战略。按照优化的层次,查询优化可分

2、为代数优化和物理优化。次,查询优化可分为代数优化和物理优化。查询执行查询执行根据优化器得到的执行战略生成查询方案,由代码生成器生成执根据优化器得到的执行战略生成查询方案,由代码生成器生成执行这个查询方案的代码。行这个查询方案的代码。查询优化概述查询优化的必要性查询优化极大地影响RDBMS的性能。查询优化的能够性关系数据言语的级别很高,使DBMS可以从关系表达式中分析查询语义。一、由DBMS进展查询优化的益处二、查询优化目的三、实践系统的查询优化步骤四、代价模型由DBMS进展查询优化的益处益处一:用户不用选择存取途径,不用思索如何可以最好地益处一:用户不用选择存取途径,不用思索如何可以最好地 表

3、达查询以获得较好的效率;表达查询以获得较好的效率; 益处二:系统可以比用户程序的优化做得更好。益处二:系统可以比用户程序的优化做得更好。 (1)优化器可以从数据字典中获取许多统计信息,优化器可以从数据字典中获取许多统计信息, 而用户程序那么难以获得这些信息而用户程序那么难以获得这些信息 ;(2)假设数据库的物理统计信息改动了,系统可以自动对查询假设数据库的物理统计信息改动了,系统可以自动对查询 重新优化,以选择相顺应的执行方案。而在非关系系统中重新优化,以选择相顺应的执行方案。而在非关系系统中 必需重写程序,而重写程序在实践运用中往往是不太能够的。必需重写程序,而重写程序在实践运用中往往是不太

4、能够的。(3)优化器可以思索数百种不同的执行方案,优化器可以思索数百种不同的执行方案, 而程序员普通只能思索有限的几种能够性;而程序员普通只能思索有限的几种能够性;(4)优化器中包括了很多复杂的优化技术,自动优化使一切人拥有优化器中包括了很多复杂的优化技术,自动优化使一切人拥有这些技术。这些技术。查询优化目的 查询优化的总目的 选择有效战略,求得给定关系表达式的值,使得查询代价最小实践上是较小。实践系统的查询优化步骤实践系统的查询优化步骤1. 将查询转换成某种内部表示,通常是语法树;2. 根据一定的等价变换规那么把语法树转换成规范优化方式;3. 选择低层的操作算法,对于语法树中的每一个操作:计

5、算各种执行算法的执行代价选择代价小的执行算法 4. 生成查询方案(查询执行方案)查询方案是由一系列内部操作组成的。代价模型 集中式数据库 单用户系统总代价 = I/O代价 + CPU代价 多用户系统总代价 = I/O代价 + CPU代价 + 内存代价 分布式数据库 总代价 = I/O代价 + CPU代价+ 内存代价+ 通讯代价 一个实例 例:求选修了课程2的学生姓名 SELECT Student.SnameFROM Student, SCWHERE Student.Sno=SC.SnoAND SCo=2; 实例续 假设1:外存: Student:1000条,SC:10000条,选修2号课程:5

6、0条;假设2:一个内存块装元组:10个Student,或100个SC, 内存中一次可以存放: 5块Student元组,1块SC元组 和假设干块衔接结果元组。假设3:读写速度:20块/秒假设4:衔接方法:基于数据块的嵌套循环法。不同的执行战略:执行战略1,执行战略2,执行战略3,执行战略4 执行战略11 name(Student.Sno=SC.Sno SCo=2 (StudentSC) StudentSC计算广义笛卡儿积 读取总块数= 读Student表块数 + 读SC表遍数 *每遍块数 =1000/10+(1000/(105) (10000/100) =100+20100=2100 读数据时间

7、=2100/20=105秒执行战略1续中间结果大小 = 1000*10000 = 107 (1千万条元组)写中间结果时间 = 10000000/10/20 = 50000秒 选择操作读数据时间 = 50000秒 投影操作 总时间 =1055000050000秒 = 100105秒 = 27.8小时执行战略22 name(SCo= 2 (Student SC) 计算自然衔接读取总块数= 2100块读数据时间=2100/20=105秒中间结果大小=10000 减少1000倍写中间结果时间=10000/10/20=50秒 读取中间文件块,做选择操作读数据时间=50秒 把上一步结果投影输出 总时间10

8、55050秒205秒=3.4分 执行战略33 Sname(Student SCo= 2 (SC) 先对SC做选择操作读SC表总块数= 10000/100=100块读数据时间=100/20=5秒 中间结果大小=50条 不用写入外存 读Student,把读入的元组与内存中的SC元组衔接读Student表总块数= 1000/10=100块读数据时间=100/20=5秒 将衔接结果投影输出 总时间55秒10秒 执行战略44 name(Student SCo=2 (SC)假设SC表在Cno上有索引,Student表在Sno上有索引假设SC表在Cno上有索引,那么选择读取SC表中Cno=2的50个元组即可中间结果大小=50条 不用写入外存。 假设Student表在Sno上有索引,那么仅读取SC表中满足条件的50个元组进展衔接操作即可 将结果投影输出 总时间 衔接运算 例:Student.Sno=SC.Sno (StudentSC) Student SC 提取公共子表达式举例SELECT Student.Sname FROM Student,SC WHERE Student.Sno=SC.Sno AND SCo=2;查询树 结果结果project(Sname) select(SCo=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论