关系查询处理与优化课件.pptxVIP

  1. 1、本文档共61页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

《数据库原理》第5章关系查询处理与优化严冬梅陈立君张铠饶俊编著宋丽红李玉芝但志广

第5章关系查询处理与优化n本章主要介绍关系型数据库系统的查询优化技术。查询优化技术在关系型数据库中有着非常重要的作用,本章将使读者初步了解RDBMS查询的基本处理过程,查询优化的基本概念和基本方法,并给出了一些在实际应用中的查询优化方法。

第5章关系查询处理与优化5.1查询优化概述5.2查询处理过程5.3查询优化方法5.4实际应用中的查询优化5.5本章小结5.6习题

5.1查询优化概述n查询优化对关系型系统来说既是挑战又是机遇。所谓挑战是指关系系统为了达到用户可接受的性能必须进行查询优化。由于关系表达式的语义级别很高,使得关系系统能够从关系表达式中分析查询语义,提供了查询优化的可行性。这为关系系统在性能上接近甚至超过非关系系统提供了机遇。n本节主要讨论查询优化问题的背景、查询优化的必要性和在关系数据库中进行查询的可行性。

5.1查询优化概述n5.1.1查询中遇到的问题n5.1.2查询优化的必要性n5.1.3查询优化的可行性

5.1.1查询中遇到的问题n数据查询是数据库系统中的最基本、最常用和最复杂的数据操作。n查询处理的代价通常取决于查询过程对磁盘的访问,磁盘访问速度相对于内存速度要慢很多。n如何从查询的多个实现策略中进行合理的选择,这种选择过程就是查询处理过程的优化,简称查询优化。

5.1.1查询中遇到的问题n查询优化作为数据库中的关键技术,对数据库的性能需求和实际应用有着重要的意义。n查询是数据库的最主要功能,查询优化的基本途径可以分为用户手动处理和机器自动处理两种。

5.1.1查询中遇到的问题n关系型数据库系统中,查询优化也是必须面对的挑战。关系数据理论基于集合论,集合及其相关理论构成了整个关系数据库领域中最重要的理论基础,这给关系数据查询优化处理在理论上提供了讨论的可行性;关系查询语言作为高级语言,具有较高层次的语义特性,为机器处理查询优化问题在实践上提供了可能性。

5.1.2查询优化的必要性nDBMS处理查询计划的过程是这样的:在做完查询语句的词法、语法、语义检查之后,将语句提交给DBMS的查询优化器,优化器做完代数优化和存取路径优化之后,由预编译模块对语句进行处理并生成查询规划,然后在合适的时间提交给系统处理执行,最后将执行结果返回给用户。n下面通过一个例子来说明查询优化的必要性:

5.1.2查询优化的必要性n【例5.1】在关系模式S(学生),C(课程),SC(选课)中,查询修读课程号为C5的所有学生姓名。此查询的SQL查询语言的语句形式为:SELECTS.SnameFROMS,SCWHERES.Sno=SC.SnoANDSC.Cno=C5;n系统可以有多种等价的关系代数表达式来完成这一查询。例如可以写出下面3种表达式:nQl=πSn(σS.Sno=SC.Sno∧SC.Cno=C5(S×SC));nQ2=πSn(σSC.Cno=C5(SSC));nQ3=πSn(SσSC.Cno=C5(SC))。n

5.1.2查询优化的必要性n下面用简单的方法来计算这3种表达式的查询所需时间。在计算前先作如下的统一约定:n设S有1000个元组,SC有10000个元组,其中修读C5的元组数为50。n磁盘中每个物理块能存放10个S元组,或100个SC元组。n内存有6个块的缓冲区,其中5块可以存放S元组,1块存放SC元组。n读/写一块磁盘的时间为1/20秒,即1秒读写20个磁盘块。n为了简化起见,所有内存操作所花的时间忽略不计。

5.1.2查询优化的必要性n计算Q的查询时间1n首先做笛卡尔乘积将S与SC的每个元组相连接,其方法为先读入S中的50n个元组(5×10)至s表中的内存缓冲区,然后不断地将SC的元组按100位一块读入后与S的元组相连接,直至读完所有SC元组(共计100次)。这种操作内连接满100位后就写中间文件一次。反复进行这样的操作,直至做完笛卡尔乘积,此时共读取总块数为:1000/10+1000/(10*5)+1000/100=100+20*100=2100块n其中读S表100块,读SC表20次,每次100块。由于每块n花费时间1/20秒,此时总共花费时间10元组数为10x10=10,设每块(约)能装10个元组,则写入中间文件要花10/20=5×l0S。5秒。连接后的34764

5.1.2查询优化的必要性n计算Q的查询时间1n其次做选择操作从中间文件中读出连接后的元组,按选择要求选取记n录(此项为内存操作,时间可忽略否计),此项操作所需时间与写入中间文件时间一样,即5×l0条件的元组假设为50个,均放在内存。n最后做投影操作4S

文档评论(0)

173****5125 + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体成都风星雨科技文化有限公司
IP属地四川
统一社会信用代码/组织机构代码
91510106MAD5XC008M

1亿VIP精品文档

相关文档