数据库-查询树的优化(比较优秀的课件).ppt

数据库-查询树的优化(比较优秀的课件).ppt

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

第七讲 查询树的优化 王晓辉 华北电力大学计算机系 等价的概念: 若关系表达式f(E1,E2,…,En)的结果与关系表达式g(E1,E2,…,En)的结果是同一个关系,那么称这两个表达式等价。 若关系表达式E1和E2是等价的可以记为: 等价变换规则 连接、笛卡儿积交换率 设E1和E2是关系代数表达式,F是连接运算的条件,则有: 2. 连接、笛卡尔积的结合率 设E1,E2,E3是关系代数表达式,F1和F2是连接运算的条件,则有: 3. 投影的串接定律 4. 选择的串接定律 5. 选择与投影的交换率 此时,条件F只涉及属性组A。若条件中有不属于A的属性组B,那么有更一般的规则: 6.选择与笛卡尔积的交换 7. 选择与并的分配率 设E=E1∪E2,E1和E2有相同的属性名,则: 8. 选择与差运算的分配率 设E1和E2有相同的属性名,则: 9. 选择对自然连接的分配率 F只涉及E1和E2的公共属性。 10. 投影于笛卡尔积的分配律 设E1和E2是两个关系表达式,A是E1的属性组,B是E2的属性组。则: 11. 投影与并的分配律 设E1和E2有相同的属性名,则: 优化规则: 选择运算尽可能先做。 投影运算和选择运算同时进行。 把投影运算同其前后的 双目运算结合执行。 选择运算和笛卡儿积运算结合成连接运算。 找出公共子表达式,避免重复运算。 优化算法: 利用规则4分解选择运算。 利用规则4~9把选择运算尽量移到叶端。 利用规则3,5,10,11把投影运算尽量移到叶端。 利用规则3~5把选择和投影的串接合并成单个选择、单个投影或一个选择后跟一个投影的形式。使尽可能多的选择和投影同时执行。 分组。双目运算和他的直系祖先为一组;双目运算后代直道叶子全是单目运算时并入改组。笛卡儿积的后代中若不是与之可以合并的自然连接的等值选择时,其后代单独分为一组。 优化实例 例:对课本第二章例9的关系代数表达式(如下)进行优化。 其中,C是课程表,S是学生表,SC是学生选课表。 在优化规则中没有对自然连接的直接优化,我们把自然连接分解为笛卡儿积和选择。 作业: 第三版:P166第4题。 第四版:P275第2题。 即优化表达式: × × S C SC 第二步(2):下放完成后: 第三步:尽量下放投影运算 × × S C SC E 第三步:尽量下放投影运算 × × S C SC 第三步(2):第一次下放后: × × S C SC 第三步(3):第二次下放: × × S C SC * * 笛卡尔积 自然连接 这里,E是关系代数表达式,Ai(i=1,2,…,n),Bj(j=1,2,…,m)是属性名且{A1,A2,… An} 是{B1,B2,…,Bm} 的子集。 求所有的学生姓名: E是关系代数表达式,F1和F2是选择条件。选择的串接定律说明选择条件可以合并,这样一次就可以检查全部的条件。 求IS系年龄大于19岁的学生: (1)F只涉及E1的属性。 (2)F=F1∧F2,且F1只涉及E1的属性,F2只涉及E2的属性。 (3) F=F1∧F2,且F1只涉及E1的属性,而F2涉及E1和E2的属性。 (1) 实例:95001这个学生可能的选课情况: (2)证明: 注:先做选择可以减少读取写入的数据,因此减少磁盘IO量,从而提高了效率。 设S1是计科041的学生关系表, S2是计科042的学生关系表: 注:先做选择可以减少读取写入的数据,因此减少磁盘IO量,从而提高了效率。 设S1是计科041的学生关系表, S3是计科专业的学生关系表: 注:先做选择可以减少做笛卡儿积的数据,结果关系的数据量也同步减少,因此减少磁盘IO量,提高了效率。 查找‘95001’这位学生的选课记录: 注:先做投影可以减少读取写入的数据,因此减少磁盘IO量,从而提高了效率。 查找所有学生可能的选课对: 注:先做投影可以减少读取写入的数据,因此减少磁盘IO量,从而提高了效率。 设S1是计科041的学生关系表, S2是计科042的学生关系表: 查找计科041、042的大于19岁的学生: 分解后的关系代数表达式 × × S C SC 第一步:利用规则4分解选择运算 × × S C SC 第二步:尽量下放选择运算 × × S C SC

文档评论(0)

wyjy + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档