4.7查询优化.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.7查询优化.ppt

4.7 查询优化 ; 查询效率不高并非是关系模型特有的问题,而是所有非过程化语言都存在的问题。 在过程化语言中,用户在请求系统“做什么”时,还必须指明“怎么做”,也就必须向系统指明达到目标的途经。 在过程化语言中,系统向用户提供选择最佳存取路径的手段。 用户则根据当时的实际情况和要求设计出最佳的模型(及存取路径),因此,效率可达到较高的水平。 ? ; 即使效率不高,这也是用户的责任,他没有设计出最佳模型!在非过程化语言(关系语言)中,用户只需指明“做什么”,不需指明“怎么做”。 “怎么做”是系统的事情。 因此,用户使用是方便了,系统的负担却重了。 但这又是数据独立性高的表现。 可见,系统效率和数据独立性、 用户使用的便利性和系统实现的便利性都是互相矛盾的。 为了解决这些矛盾,必须使系统能自动进行查询优化,使关系系统在查询的性能上到达甚至超过非关系系统。 ; 关系系统的优化器不仅能进行查询优化,而且可以比用户自己在程序中的“优化”做得更好。 其原因在于: (1) 优化器中可以包含很多有效的优化技术,而这些高级技术一般只有最好的程序员才能掌握。 (2) 优化器可以从几百种不同的执行方案中选取一个较好的,但再好的程序员也只能考虑有限的几种方案。 (3) 优化器可以获得系统当时的全部信息,并根据这些信息来选择一个较好的执行方案,但用户程序对此是无能为力的。 ; 也即,优化器可以根据变化了的当前信息,自动选择一个对当时情况较有利的执行计划。 但用户程序是不可能有此性能的,用户程序的执行计划是不会随系统当时的实际情况而变化的。 查询优化的目标是: 选择有效策略,等价变换给定的关系表达式,使结果表达式求解(程序)的代价较小。 ; 查询优化步骤一般有以下四个: (1) 把查询转换成内部表示形式,一般是语法树。 (2) 选择合适的等价变换规则,把语法树转换成优化形式。 (3) 选择低层的操作算法。 根据存取路径、 数据的存储分布情况等,为语法树中的每个操作选择合适的操作算法。 (4) 生成查询执行方案。 由以上三条最后生成了一系列的内部操作。 根据这些内部操作要求的执行次序,确定一个执行方案。 ; 4.7.1 查询优化的一般策略 任何策略都不能保证在所有情况下都能得到最好的方案。 但下面这些原则一般都是有效的。 (1) 尽可能早地执行选择操作。 在查询优化中,这是最重要、 最基本的一条。 选择运算不仅能使中间结果显著变小,而且可使执行时间成数量级地减少。 (2) 在一些使用频率较高的属性上,建立索引或分类排序,这可大大提高存取效率。 ; 例如,对两个表进行自然连接操作,则可先对两表建立有关索引,然后,只要对两表进行一遍扫描即可完成自然连接操作。 用时当然较少。 (3) 同一关系的投影运算和选择运算同时进行。 这样做,可避免重复扫描关系,从而达到缩短时间的目的。 (4) 把选择同选择前面的笛卡尔积结合起来成为一个连接运算。 而连接运算比同样关系上的笛卡尔积要省很多时间。 (5) 把投影运算同其前后的双目运算结合起来进行,以免重复扫描文件。 (6) 找出公共子表达式,并把运算结果存于外存。 需要时,再从外存读入。 ; 4.7.2 关系代数表达式的优化算法 利用4.6节的等价变换规则,使优化后的表达式能遵循4.7.1节的一般原则。 这就是优化算法的工作。 算法: 关系代数表达式的优化。 输入: 一个关系代数表达式的一棵语法树。 输出: 计算该表达式的一个优化程序。 ; 方法: (1) 利用4.6节的规则4,把形如σF1∧F2∧…∧Fn(E)的内容变换为 σF1(σF2(…σFn(E)…)) (2) 对于每一个选择,使用规则4至规则8,尽可能把它移到树的叶端(即尽可能使它早一点执行)。 (3) 对每一个投影,利用规则3,5,9,10,把它尽可能移向树的叶端。 使用规则3可能会消去一些投影,使用规则5可能把一个投影分成两个

文档评论(0)

170****0532 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8015033021000003

1亿VIP精品文档

相关文档