《数据库第九章.ppt》由会员分享,可在线阅读,更多相关《数据库第九章.ppt(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据库第九章数据库第九章现在学习的是第1页,共25页第九章第九章 关系查询处理及其查询优化关系查询处理及其查询优化9.1 关系数据库系统的查询处理关系数据库系统的查询处理 9.2 关系数据库系统的查询优化关系数据库系统的查询优化 9.3 代数优化代数优化9.4 物理优化物理优化 9.5 小小 结结 现在学习的是第2页,共25页第九章第九章 关系查询处理及其查询优化关系查询处理及其查询优化n代数优化策略代数优化策略:通过对关系代数表达式的等价变换来提高查询效率 n关系代数表达式的等价关系代数表达式的等价:指用相同的关系代替两个表达式中相应的关系所得到的结果是相同的n两个关系表达式E1和E2是等价
2、的,可记为E1E2 现在学习的是第3页,共25页第九章第九章 关系查询处理及其查询优化关系查询处理及其查询优化v9.3.1 关系代数表达式等价变换规则关系代数表达式等价变换规则 1.连接、笛卡尔积交换律连接、笛卡尔积交换律 设E1和E2是关系代数表达式,F是连接运算的条件,则有 E1 E2E2 E1 E1 E2E2 E1 E1 E2E2 E12.连接、笛卡尔积的结合律连接、笛卡尔积的结合律 设E1,E2,E3是关系代数表达式,F1和F2是连接运算的条件,则有 (E1 E2)E3E1 (E2 E3)(E1 E2)E3E1 (E2 E3)(E1 E2)E3E1 (E2 E3)现在学习的是第4页,共
3、25页第九章第九章 关系查询处理及其查询优化关系查询处理及其查询优化3.投影的串接定律投影的串接定律 (E)(E)这里,这里,E是关系代数表达式,是关系代数表达式,Ai(i=1,2,n),Bj(j=1,2,m)是属性名且是属性名且A1,A2,An构成构成B1,B2,Bm的子集。的子集。4.选择的串接定律选择的串接定律 (E)(E)这里,这里,E是关系代数表达式,是关系代数表达式,F1、F2是选择条件。是选择条件。选择的串接律说明选择条件可以合并。这样一次就可检查全选择的串接律说明选择条件可以合并。这样一次就可检查全部条件。部条件。现在学习的是第5页,共25页第九章第九章 关系查询处理及其查询优
4、化关系查询处理及其查询优化5.选择与投影操作的交换律选择与投影操作的交换律 F(E)(F(E)选择条件F只涉及属性A1,An。若F中有不属于A1,An的属性B1,Bm则有更一般的规则:(F(E)(F(E)现在学习的是第6页,共25页第九章第九章 关系查询处理及其查询优化关系查询处理及其查询优化6.选择与笛卡尔积的交换律选择与笛卡尔积的交换律如果F中涉及的属性都是E1中的属性,则 (E1E2)(E1)E2如果F=F1F2,并且F1只涉及E1中的属性,F2只涉及E2中的属性,则由上面的等价变换规则1,4,6可推出:(E1E2)(E1)(E2)若F1只涉及E1中的属性,F2涉及E1和E2两者的属性,
5、则仍有 (E1E2)(E1)E2)它使部分选择在笛卡尔积前先做。现在学习的是第7页,共25页第九章第九章 关系查询处理及其查询优化关系查询处理及其查询优化7.选择与并的分配律选择与并的分配律设E=E1E2,E1,E2有相同的属性名,则 F(E1E2)F(E1)F(E2)8.选择与差运算的分配律选择与差运算的分配律若E1与E2有相同的属性名,则 F(E1-E2)F(E1)-F(E2)9.选择对自然连接的分配律选择对自然连接的分配律 F(E1 E2)F(E1)F(E2)F只涉及E1与E2的公共属性 现在学习的是第8页,共25页第九章第九章 关系查询处理及其查询优化关系查询处理及其查询优化10.投影
6、与笛卡尔积的分配律投影与笛卡尔积的分配律设E1和E2是两个关系表达式,A1,An是E1的属性,B1,Bm是E2的属性,则 (E1E2)(E1)(E2)11.投影与并的分配律投影与并的分配律设E1和E2有相同的属性名,则 (E1E2)(E1)(E2)现在学习的是第9页,共25页第九章第九章 关系查询处理及其查询优化关系查询处理及其查询优化n典型的启发式规则:典型的启发式规则:n1.选择运算应尽可能先做。在优化策略中这是最重要、最基本的一条n2.把投影运算和选择运算同时进行n如有若干投影和选择运算,并且它们都对同一个关系操作,则可以在扫描此关系的同时完成所有的这些运算以避免重复扫描关系现在学习的是
7、第10页,共25页第九章第九章 关系查询处理及其查询优化关系查询处理及其查询优化n3.把投影同其前或其后的双目运算结合起来n4.把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算n5.找出公共子表达式n如果这种重复出现的子表达式的结果不是很大的关系并且从外存中读入这个关系比计算该子表达式的时间少得多,则先计算一次公共子表达式并把结果写入中间文件是合算的n当查询的是视图时,定义视图的表达式就是公共子表达式的情况现在学习的是第11页,共25页第九章第九章 关系查询处理及其查询优化关系查询处理及其查询优化n 优化关系表达式的算法。优化关系表达式的算法。算法:关系表达式的优化算法:关系表达式
8、的优化输入:一个关系表达式的查询树输入:一个关系表达式的查询树输出:优化的查询树输出:优化的查询树方法:(1)利用等价变换规则4把形如F1F2Fn(E)变换为F1(F2(Fn(E)。(2)对每一个选择,利用等价变换规则49尽可能把它移到树的叶端。现在学习的是第12页,共25页第九章第九章 关系查询处理及其查询优化关系查询处理及其查询优化(3)对每一个投影利用等价变换规则3,5,10,11 中的一般形式尽可能把它移向树的叶端。n注意:n等价变换规则3使一些投影消失n规则5把一个投影分裂为两个,其中一个有可能被移向树的叶端(4)利用等价变换规则35把选择和投影的串接合并成单个选择、单个投影或一个选
9、择后跟一个投影。使多个选择或投影能同时执行,或在一次扫描中全部完成 现在学习的是第13页,共25页第九章第九章 关系查询处理及其查询优化关系查询处理及其查询优化(5)把上述得到的语法树的内节点分组。每一双目运算(,-)和它所有的直接祖先为一组(这些直接祖先是(,运算)。n如果其后代直到叶子全是单目运算,则也将它们并入该组n但当双目运算是笛卡尔积(),而且后面不是与它组成等值连接的选择时,则不能把选择与这个双目运算组成同一组,把这些单目运算单独分为一组 现在学习的是第14页,共25页第九章第九章 关系查询处理及其查询优化关系查询处理及其查询优化例4 下面给出例3中 SQL语句的代数优化示例。(1
10、)把SQL语句转换成查询树,如下图所示 查询树 关系代数语法树 优化后的查询树 现在学习的是第15页,共25页第九章第九章 关系查询处理及其查询优化关系查询处理及其查询优化n代数优化改变查询语句中操作的次序和组合,不涉及底层的存取路径n对于一个查询语句有许多存取方案,它们的执行效率不同,仅仅进行代数优化是不够的 n物理优化就是要选择高效合理的操作算法或存取路径,求得优化的查询计划 9.4 物理优化物理优化现在学习的是第16页,共25页第九章第九章 关系查询处理及其查询优化关系查询处理及其查询优化n选择的方法:选择的方法:n基于规则的启发式优化n基于代价估算的优化n两者结合的优化方法现在学习的是
11、第17页,共25页第九章第九章 关系查询处理及其查询优化关系查询处理及其查询优化v9.4.1 基于启发式规则的存取路径选择优化基于启发式规则的存取路径选择优化一、一、选择操作的启发式规则选择操作的启发式规则:1.对于小关系对于小关系,使用全表顺序扫描,即使选择列上有索引 对于大关系对于大关系,启发式规则有:,启发式规则有:2.对于选择条件是主码值的查询n查询结果最多是一个元组,可以选择主码索引n一般的RDBMS会自动建立主码索引。现在学习的是第18页,共25页第九章第九章 关系查询处理及其查询优化关系查询处理及其查询优化3.对于选择条件是非主属性值的查询,并且选择列上有索对于选择条件是非主属性
12、值的查询,并且选择列上有索引引n要估算查询结果的元组数目n如果比例较小(10%)可以使用索引扫描方法n否则还是使用全表顺序扫描4.对于选择条件是属性上的非等值查询或者范围查询,并且对于选择条件是属性上的非等值查询或者范围查询,并且选择列上有索引选择列上有索引n要估算查询结果的元组数目如果比例较小(10%)可以使用索引扫描方法否则还是使用全表顺序扫描现在学习的是第19页,共25页第九章第九章 关系查询处理及其查询优化关系查询处理及其查询优化5.对于用对于用AND连接的合取选择条件连接的合取选择条件n如果有涉及这些属性的组合索引n优先采用组合索引扫描方法n如果某些属性上有一般的索引n则可以用例1-
13、C4中介绍的索引扫描方法n否则使用全表顺序扫描。6.对于用对于用OR连接的析取选择条件,一般使用全表顺序扫连接的析取选择条件,一般使用全表顺序扫描描现在学习的是第20页,共25页第九章第九章 关系查询处理及其查询优化关系查询处理及其查询优化二、二、连接操作的启发式规则:连接操作的启发式规则:1.如果2个表都已经按照连接属性排序n 选用排序-合并方法2.如果一个表在连接属性上有索引n 选用索引连接方法 3.如果上面2个规则都不适用,其中一个表较小n 选用Hash join方法 现在学习的是第21页,共25页第九章第九章 关系查询处理及其查询优化关系查询处理及其查询优化n4.可以选用嵌套循环方法,
14、并选择其中较小的表,确切地讲是占用的块数(b)较少的表,作为外表(外循环的表)。n 理由:n设连接表R与S分别占用的块数为Br与Bsn连接操作使用的内存缓冲区块数为Kn分配K-1块给外表n如果R为外表,则嵌套循环法存取的块数为Br+(Br/K-1)Bsn显然应该选块数小的表作为外表 现在学习的是第22页,共25页第九章第九章 关系查询处理及其查询优化关系查询处理及其查询优化n查询处理是RDBMS的核心,查询优化技术是查询处理的关键技术 n本章讲解的优化方法 n启发式代数优化n基于规则的存取路径优化n基于代价的优化n本章的目的:希望读者掌握查询优化方法的查询优化方法的概念和技术概念和技术 现在学习的是第23页,共25页第九章第九章 关系查询处理及其查询优化关系查询处理及其查询优化现在学习的是第24页,共25页第九章第九章 关系查询处理及其查询优化关系查询处理及其查询优化现在学习的是第25页,共25页