查询处理与查询优化优秀讲义.pptVIP

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

数据库教程(沈--06.8) 第三部分 系统篇 ch.7查询处理与查询优化 查询是数据库系统中使用最频繁、最基本的操作。对于一个给定的查询,通常会有许多种可能的执行策略,查询优化就是从众多策略中找出高效执行策略的处理过程,是DBMS实现的关键技术,对系统性能有很大影响。 1。引言 2。代数优化 3。物理优化 ch.7 1.引言 1。引言 (1)查询处理过程 ch.7 1.引言 (2) 查询优化分类 查询优化大致可分成以下四类: 1)规则优化。仅根据一般能提高查询效率的规则,选择执行的策略。例如让选择、投影等一元操作先做,再做连接等二元操作。 2)代数优化。先把查询语句转换成某种内部表示,通常是语法树,然后应用等价变换规则进行优化。例如依据已经经过证明的规则交换一元和二元操作的顺序,缩短执行时间。这种查询优化方法仅涉及查询语句本身,而不涉及存取路径,又称独立于存取路径的优化。 3)物理优化。合理选择各种操作的存取路径,以取得显著的优化效果。例如考虑如何执行查询,是否存在索引或者其它的物理存取路径、数据值的分布情况等。又称为依赖于存取路径的优化。 4)代价估算优化。构造一组查询执行策略,进行代价估算,从中选择一个代价最低的。一般地讲,产生所有的执行策略不太可能,这会造成选择本身代价太大,将产生的策略的数目保持在一定范围内才是比较合理的。 ch.7 1.引言 (3)一个启发性的例子 例7-1 设有Shop(商店),Customer(顾客),SC(购物关系)三个关系,关系模式如下: Shop (S#,Sname,Address) Customer (C#,Cname,Address) SC(S#,C#, Item, Quantity,Price) 查询是“给出销售出彩电的商店名称”,用SQL语句表达如下: SELECT Sname FROM Shop,SC WHERE Shop.S# = SC.S# AND Item=’彩电’ 用关系代数表达式表达这个查询语句: ΠSname(σShop.S# = SC.S# ∧ Item=’彩电’ (Shop×SC)) 选择条件Shop.S# = SC.S#与笛卡儿积组合成连接操作: ΠSname(σItem=’彩电’(Shop? SC)) 选择条件Item=’彩电’还可以移到连接中的关系SC前面: ΠSname(Shop?σItem=’彩电’(SC)) ch.7 1.引言 假设商店-顾客数据库中有500家商店和10000个销售记录,其中卖出过彩电的销售记录只有50个。可以看到虽然这三个关系代数的表达式是等价的,但是执行的效率却相差很大。 执行第一个表达式花费的时间总计约50000秒 (13.89小时) 执行第二个表达式花费的时间总计约152.5秒 (2.54分钟) 执行第三个表达式花费的时间总计约7.5秒 这个例子充分说明查询优化是必要的,实际中怎样的优化是可能的。例如,可以的情况下,先做选择后做连接,而不是先做连接后做选择。 ch.7 2.代数优化 2。代数优化 (1)代数优化的基本原则 1),选择运算应尽可能先做。在优化策略中这是最重要、最基本的一条。它常常可使执行时节约几个数量级,因为选择运算一般使计算的中间结果大大变小。 2),在执行连接前对关系适当地预处理。预处理方法主要有两种,在连接属性上建立索引和对关系排序,然后执行连接。第一种称为索引连接方法,第二种称为排序合并(SORT-MERGE)连接方法。 3),将投影运算和选择运算同时进行。如有若干投影和选择运算,并且它们都对同一个关系操作,则可以在扫描此关系的同时完戌所有的这些运算以避免重复扫描关系。 ch.7 2.代数优化 4),把投影同其前或其后的双目运算结合起来,没有必要为了去掉某些字段而扫描一遍关系。 5),将某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算,连接特别是等值连接运算要比同样关系上的笛卡尔积省很多时间。 6),找出公共子表达式。如果这种重复出现的子表达式的结果不是很大的关系,并且从外存中读人这个关系比计算该子表达式的时间少得多,则先计算一次公共子表达式并把结果写人中间文件。当查询的是视图时,定义视图的表达式就可成为公共子表达式。 公共子表达式并把结果写人中间文件。当查询的是视图时,定义视图的表达式就可成为公共子表达式。 c

文档评论(0)

taotao0c + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档