第十二章 查询优化技术关系数据库系统的查询自下而上分为三个.pptVIP

  • 5
  • 0
  • 约8.93千字
  • 约 28页
  • 2019-10-30 发布于湖北
  • 举报

第十二章 查询优化技术关系数据库系统的查询自下而上分为三个.ppt

* 第十二章 查询优化技术 关系数据库系统的查询自下而上分为三个层次: 第一层是关系代数的操作; 第二层是由关系代数的操作组成的查询计划; 第三层是用户查询的高级描述。 第十一章讨论了第一层的各种实现算法。 本章主要讨论第二层的优化处理技术。 本章最后一节简单介绍了第三层的一些优化方法。 第一节 问题的提出 第二节 启发式关系代数优化方法 第三节 启发式关系演算优化方法 第四节 基于复杂性估计的查询优化方法 第五节 语义查询优化方法 L 策略Q1=?SN(?(S.S#=SC.S#)?(SC.C#=‘C2’)(S?SC)) 策略Q2=?SN(?S.C#=‘C2’(S?S.S#=SC.S#SC)) 策略Q3=?SN((?S.C#=‘C2’SC)?S.S#=SC.S#S) 在给定某个执行环境下, 三个策略Q1、Q2、Q3的 时间开销分别是200105、125、10秒。 第一节 问题的提出 多个关系代数构成的查询可以有多种操作策略,不同的操 作策略一般有不同的磁盘存取复杂性,因此选择复杂性较低的 一种策略是提高访问数据库效率的重要的优化技术。 下例说明不同的操作策略有不同的存取复杂性。 L1 select distinct s.sn from s,sc where s.s#=sc.s# and sc.c#=‘c2’ [例]设关系S有1000个学生的记录,其属性是姓名sn和学号s#。 关系SC有10000个选课记录,其属性是学号s#和课程号c#。 现要查询选修C2课程的学生姓名。 这个例子不但说明了查询优化的必要性,而且给我们启示: 先选择再连接,可减少中间运算,提高处理速度。 第二节 启发式关系代数优化方法 关系代数表达式的优化是查询优化中的一个至关重要的 问题。许多关系型DBMS处理查询的第一步是把查询的高 级描述(例如SQL)语句转换为对应的内部表示,即关系 代数表达式,或其图表示:查询树。第二步是运用关系 代数等价变换规则和关系代数优化规则(策略)把内部表 示转换为复杂性较低的另一等价形式。 本节介绍基于关系代数等价变换规则的启发式查询优化 方法。 一 关系代数等价变换规则 二 启发式代数优化规则 三 启发式代数优化算法 L2 一 关系代数等价变换规则 查询优化是在结果相同的操作方案中选择的,这引出等价关系 代数表达式的概念:若两个关系代数表达式A和B表示相同的关 系,则称之为互相等价,记作A?B。 常用的关系代数等价变换规律包括12类。下边仅列出前10类。 1 选择串接率: ?c1 and …and cn(A)??c1(?c2(…(?cn(A))…)) 其中A是关系代数表达式,ci是选择条件。 即:这种复合条件的选择可以转换为逐次选择操作。 2 选择交换率: ?c(?d(A))??d(?c(A)),c和d是选择条件。 即:逐次选择操作与选择顺序无关。 3 投映串接率:?L1(?L2(…(?Ln(A))…))??L1(A),其中, L1?L2?…?Ln .即:逐次投影操作可一次投影到投影域交集。 4 选择投映交换率:关于选择与投影连续操作的次序交换问题, 若条件c仅包括投映域L中的属性,则?L(?c(A))??c(?L(A)) 若条件c包括投映域L外的属性x,则?L(?c(A))??L(?c(?L,x(A))) 5 连接和笛卡儿乘积的交换率:A?B?B?A,A?cB?B?cA 6 集合操作的交换率:A?B?B?A,A?B?B?A L21 接下页 7.连接、笛卡儿乘积和集合操作的结合率 (A?B)?C?A?(B?C) (A?cB)?dC?A?c(B?dC) (A?B)?C?A?(B?C) (A?B)?C?A?(B?C) 其中A、B和C是关系代数表达式,小写字母c和d表示连接条件。 8.选择、连接和笛卡儿乘积的分配率 设A和B是关系代数表达式,d是连接条件。 ?c(A?dB)?(?cA)?dB (选择条件c仅涉及A的属性) ?c(A?dB)?(?c1A)?d(?c2B) (三个选择条件满足c=c1?c2,c1仅涉及A属性, c2仅涉及B属性) 用?代替上边两式的?d,式子同样成立。 9.投影、连接和笛卡儿乘积的分配率 设A和B是关系代数表达式,d是连接条件。 ?L(A?dB)?(?L1A)?d(?L2B)

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档