数据库系统教程教学课件作者何玉洁李宝安第14章节查询处理与优化.ppt

数据库系统教程教学课件作者何玉洁李宝安第14章节查询处理与优化.ppt

  1. 1、本文档共68页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
连接操作的启发式规则 如果两个关系都已按连接属性排序,则优先选用排序归并法。如果两个关系中有一个关系已按连接属性排序,而另一个关系很小,则可考虑按连接属性排序,然后再用排序归并法进行连接。 如果两个关系中有一个关系在连接属性上有索引或散列,则可以另一个关系为外关系,顺序扫描,并利用内关系上的索引或散列寻找与之匹配的元组,以代替多遍扫描。 如果上述两个规则的条件都不具备,且两个关系都比较小,则可以用嵌套循环法。 如果上述规则都不适用,则可以选用散列连接法。 * * 14.4.3 投影操作的实现 投影操作一般与选择、连接等操作同时进行,不需要附加的I/O开销。 如果投影的属性集中不包含主键,则投影结果中可能出现重复元组。 消除重复元组一般需要将投影结果按其所有属性排序,使重复元组连续存放。 也可以将投影结果按其一个或多个属性散列成一个文件,当一个元组被散列到一个桶中时,可以检查是否与桶中已有元组重复。 * * 14.4.4 集合操作的实现 笛卡尔积一般用嵌套循环方法实现。 集合R、S的并、交、差操作: 可先将R、S按同一属性排序,然后扫描这两个关系,并选出所需的元组。 也可用散列方法先将R按主键散列到一散列文件中,然后再将S也按主键和同一散列函数散列到同一散列文件中。当将S的一个元组散列到一个桶中时,可以检查桶中是否有与之重复的元组。 * * 14.4.5 组合操作 在一个查询中可以包含多个用AND和OR连接起来的操作,如果孤立地执行各个操作,则势必要为每个操作建立一个临时文件来存放中间结果,并作为下一个操作的输入。这在时间和空间上都是不经济的。 因此,在处理查询时,应尽可能把其中的操作组合起来执行。 * * 小结 查询处理是RDBMS的核心,而查询优化技术又是查询处理的关键技术。 各种优化技术的实现与具体的数据库管理系统有关,但优化的原则是共同的。 * * * * 开场白: * * 一些等价转换规则(续) (6)并(∪)和交(∩)运算的交换律 R ∪ S ≡ S ∪ R R ∩ S ≡ S ∩ R * * 一些等价转换规则(续) (7)选择(σ)和连接( )的交换律 σc(R S)≡(σc(R)) S , σc1∧c2(R S)≡ σc1(R) σc2(S) 示例 σSdept=’计算机系’ Λ Grade=90(Student SC) ≡(σSdept=’计算机系’(Student)) (σGrade=90(SC)) * * 一些等价转换规则(续) (8)投影(∏)和连接的分配律 设R和S的连接属性在L1和L2中,则 ∏L1∪L2(R S)≡ ∏L1(R) ∏L2(S) 示例: ∏Sdept,Sno,Sname,Grade(Student SC)≡ (∏Sdept,Sno,Sname(Student) (∏Sno,Grade(SC)) * * 一些等价转换规则(续) (9)选择与集合并、交、差运算的分配律 设R和S有相同的属性,则: σc(R ∪ S)≡ σc(R)∪σc(S) σc(R ∩ S)≡ σc(R)∩σc(S) σc(R - S)≡ σc(R)- σc(S) * * 一些等价转换规则(续) (10)投影(∏)与并运算的分配律 设R和S有相同的属性,则: ∏L(R ∪ S) ≡ ∏L(R)∪ ∏L(S) (14)连接和笛卡尔积的结合律 (R × S )× T ≡ R ×(S × T) (R S ) T ≡ R (S T ) * * 一些等价转换规则(续) 并(∪)和交(∩)的结合律 (R∪S)∪ T ≡ R∪(S∪T) (R∩S)∩ T ≡ R∩(S∩T) * * 14.3.2 启发式规则 用于对关系代数表达式的查询树进行优化。 查询树也称为关系代数树,它用形象的形式来表达关系代数的执行过程。 查询树包括: 叶结点:代表查询的基本输入关系。 非叶结点:代表在关系代数表达式中应用操作的中间关系。 根结点:代表查询的结果。 查询树的操作顺序为:从叶到根。 * * 示例 Q2=∏Sname(σSC.Cno = ‘C001’(Student SC)) 对应的查询树 * * 启发式规则 尽可能先做选择运算。 投影运算和选择运算同时进行。 把投影运算和其之前或之后的二元运算结合起来,以减少关系的扫描次数。 把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算。 找出公共子表达式。 * * 优化示例 查询计算机系VB课程考试成绩大于等于90分的学生的姓名和VB成绩。 SELECT Sname, Grade FROM Student JOIN SC ON Student.Sno = SC.Sno JOIN Course O

文档评论(0)

带头大哥 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档