第6章 查询处理和优化.ppt
《第6章 查询处理和优化.ppt》由会员分享,可在线阅读,更多相关《第6章 查询处理和优化.ppt(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第6 6章章 查询处理和优化查询处理和优化6.1 6.1 引言引言查询处理查询处理查询优化查询优化 查询优化查询优化是是查询处理查询处理中的重要一环,对关系中的重要一环,对关系DB尤其如此。尤其如此。从查询语句出发,到获得查询从查询语句出发,到获得查询结果的处理过程。结果的处理过程。DBMS对描述性语言表达的查对描述性语言表达的查询语句进行分析,为其确定合理、有效的执行询语句进行分析,为其确定合理、有效的执行策略和步骤的过程。策略和步骤的过程。制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组 例如:例如:12+64+88=?查询优化是查询优化是相对而言相对而言的,可能的执行策略的,可能
2、的执行策略很多,穷尽代价很大,不能片面追求绝对的最很多,穷尽代价很大,不能片面追求绝对的最优。优。(12+88)+64=164制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组数据库查询语言的处理过程数据库查询语言的处理过程:(1)解释方式执行)解释方式执行解释执行解释执行解释执行解释执行查询语句查询语句查询语句查询语句DBMSDBMS BEGIN TRANBEGIN TRANBEGIN TRANBEGIN TRAN查询语句查询语句查询语句查询语句ENDENDENDEND应用程序应用程序查询请求查询请求查询请求查询请求查询结果查询结果查询结果查询结果优化占执优化占执行时间!行时间!查询语句
3、查询语句查询语句查询语句制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组(2)(2)编译方式编译方式 BEGIN TRANBEGIN TRANBEGIN TRANBEGIN TRAN查询语句查询语句查询语句查询语句ENDENDENDEND应用程序应用程序应用程序应用程序 CALL AM(CALL AM(CALL AM(CALL AM(参数参数参数参数)AMAMAMAM依赖因素依赖因素依赖因素依赖因素访问模块访问模块访问模块访问模块AMAMAMAM预编译预编译预编译预编译编译和连接编译和连接编译和连接编译和连接目标码目标码目标码目标码执行执行执行执行优化不优化不占执行时占执行时间!间!制作
4、:倪巍伟 东南大学计算机科学与工程学院数据库课程组对于常见的例行事务,编译方式可提高性能。对于常见的例行事务,编译方式可提高性能。对于简短的即时查询,解释方式灵活实用。对于简短的即时查询,解释方式灵活实用。解释方式和编译方式各适用于什么情况?解释方式和编译方式各适用于什么情况?制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组n n代数优化代数优化代数优化代数优化 对查询语句进行变换不涉及存取路径对查询语句进行变换不涉及存取路径对查询语句进行变换不涉及存取路径对查询语句进行变换不涉及存取路径n n物理优化物理优化物理优化物理优化 根据存取路径选择合理的存取策略进行优化根据存取路径选择合理的
5、存取策略进行优化根据存取路径选择合理的存取策略进行优化根据存取路径选择合理的存取策略进行优化n n规则优化规则优化规则优化规则优化 仅根据启发式规则选择执行的策略进行优化仅根据启发式规则选择执行的策略进行优化仅根据启发式规则选择执行的策略进行优化仅根据启发式规则选择执行的策略进行优化n n代价估算优化代价估算优化代价估算优化代价估算优化 制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组6.2 6.2 代数优化代数优化 代数优化对查询进行等效变换,以减少执行开销。代数优化对查询进行等效变换,以减少执行开销。代数优化的原则是代数优化的原则是尽量减小查询过程中间结果的尽量减小查询过程中间结果的
6、大小大小。选择、投影操作通常能够有效地减小关系的大小。选择、投影操作通常能够有效地减小关系的大小。连接、迪卡尔乘积和并操作容易生成较大的查询中连接、迪卡尔乘积和并操作容易生成较大的查询中间结果。间结果。因此,因此,先做选择、投影先做选择、投影;先做小关系间的连接,先做小关系间的连接,再做大关系的连接再做大关系的连接;甚至需要先找出查询中的公共表甚至需要先找出查询中的公共表达式达式,以避免重复运算。,以避免重复运算。制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组常用变换规则常用变换规则1.2.3.4.制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组5.R JN S=S JN RR
7、JN S=S JN R6.7.制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组8.9.10.制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组注意:规则注意:规则注意:规则注意:规则11111111中中中中,对于连接运算,可能出现对于连接运算,可能出现对于连接运算,可能出现对于连接运算,可能出现S S S S与与与与T T T T之间之间之间之间无连接条件的情况,此时的连接运算成为迪卡尔乘积。无连接条件的情况,此时的连接运算成为迪卡尔乘积。无连接条件的情况,此时的连接运算成为迪卡尔乘积。无连接条件的情况,此时的连接运算成为迪卡尔乘积。例如:例如:例如:例如:(R JNR JNR JN
8、R JNc1c1c1c1 S)JN S)JN S)JN S)JNc2 c2 c2 c2 T,T,T,T,式中,式中,式中,式中,Attr.(c1)Attr.(c1)Attr.(c1)Attr.(c1)Attr.(RAttr.(RAttr.(RAttr.(R)Attr.(SAttr.(SAttr.(SAttr.(S)Attr.(c2)Attr.(c2)Attr.(c2)Attr.(c2)Attr.(RAttr.(RAttr.(RAttr.(R)Attr.(TAttr.(TAttr.(TAttr.(T)而而而而S S S S和和和和T T T T之间没有连接条件。可改写为:之间没有连接条件。可改写
9、为:之间没有连接条件。可改写为:之间没有连接条件。可改写为:R JNR JNR JNR JNc1 AND c2c1 AND c2c1 AND c2c1 AND c2(S S S ST)T)T)T)11.制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组范例范例p118p118例例6-16-1 设有设有S(S(供应商供应商),P(P(零件零件),SP(SP(供应关系供应关系)三个关系,关系模三个关系,关系模式如下:式如下:S(SNUM,SNAME,CITY)S(SNUM,SNAME,CITY)P(PNUM,PNAME,WEIGHT,SIZE)P(PNUM,PNAME,WEIGHT,SIZE)
10、SP(SNUM,PNUM,DEPT,QUAN)SP(SNUM,PNUM,DEPT,QUAN)有如下查询有如下查询Q:Q:SELECTSELECT SNAME SNAME FROMFROM S,P,SP S,P,SP WHEREWHERE S.SNUM=SP.SNUM S.SNUM=SP.SNUM AND SP.PNUM=P.PNUM AND SP.PNUM=P.PNUM AND S.CITY=NANJING AND S.CITY=NANJING AND P.PNAME=BOLT AND P.PNAME=BOLT AND SP.QUAN 10000 AND SP.QUAN 10000 制作:倪巍
11、伟 东南大学计算机科学与工程学院数据库课程组 nSQLSQL语句转化为原始查询树语句转化为原始查询树 Select Select From From Where Where 制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组Q Q Q Q可用右图所示的原可用右图所示的原可用右图所示的原可用右图所示的原始查询树表示:始查询树表示:始查询树表示:始查询树表示:Q:SELECT SNAME FROM S,P,SP WHERE S.SNUM=SP.SNUM AND SP.PNUM=P.PNUM AND S.CITY=NANJING AND P.PNAME=BOLT AND SP.QUAN 1000
12、0 原始查询树原始查询树制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组选择操作下压选择操作下压选择操作下压选择操作下压选择操作尽量下压选择操作尽量下压原始查询树原始查询树制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组先连接小关系先连接小关系 S,P,SP S,P,SP经选择后得经选择后得S S、P P、SPSP,估算大小:估算大小:|S|=|S|/NCITY|P|=|P|/NPNAME|SP|=|SP|(Vmax-10000)/(Vmax-Vmin)设设|S S|P|P|,|SP|,|SP|P|,q集合集合 IN,EXISTS,NOT EXISTSIN,EXISTS,NOT E
13、XISTSq复合复合 AND,ORAND,OR 选择操作的执行策略与选择条件、可用的存取路选择操作的执行策略与选择条件、可用的存取路径以及选取的元组数在整个关系中所占的比例有关。径以及选取的元组数在整个关系中所占的比例有关。制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组n 实现方法:顺序扫描、尽量利用散列索引等方法。实现方法:顺序扫描、尽量利用散列索引等方法。选择操作选择存取路径的启发式规则:选择操作选择存取路径的启发式规则:(1 1)对于小关系,对于小关系,顺序扫描顺序扫描。(2 2)若无索引、散列等存取路径可用,或估计若无索引、散列等存取路径可用,或估计选取的元组数占关系的比例较大
14、(大于选取的元组数占关系的比例较大(大于20%20%)且有)且有关属性上无簇集索引,关属性上无簇集索引,顺序扫描顺序扫描。(3 3)对于主键的等值选择,优先选用主键的索对于主键的等值选择,优先选用主键的索引或散列。引或散列。(4 4)对于非主键的等值选择,若选取的元组数占对于非主键的等值选择,若选取的元组数占关系的比例较小(小于关系的比例较小(小于20%20%),可以用无序索引;),可以用无序索引;否则只能用簇集索引或顺序扫描否则只能用簇集索引或顺序扫描。(。(为什么?为什么?)制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组(5 5).对于范围条件,先通过索引找到范围的边界,对于范围条
15、件,先通过索引找到范围的边界,再通过索引的顺序集沿相应方向搜索,再通过索引的顺序集沿相应方向搜索,如中选的元组如中选的元组数在关系中所占比例较大,宜采用簇集索引或顺序扫数在关系中所占比例较大,宜采用簇集索引或顺序扫描描。(6 6)对于用)对于用ANDAND连接的合取选择条件:连接的合取选择条件:q 优先选用多属性索引优先选用多属性索引q 若有多个可用的次索引,可用预查找处理,最后若有多个可用的次索引,可用预查找处理,最后做其余条件检查做其余条件检查q 个别条件可用(个别条件可用(3 3)()(4 4)()(5 5)之一,求得相应)之一,求得相应组,再将这些元组用其它条件筛选组,再将这些元组用其
16、它条件筛选q 顺序扫描顺序扫描制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组(7 7)用)用OROR连接的析取选择条件,尚无好的方法。连接的析取选择条件,尚无好的方法。只能按其中各个条件分别选出一个元组集,再求这只能按其中各个条件分别选出一个元组集,再求这些元组集的并。些元组集的并。在在OROR连接的诸条件中,只要有一个条件无合适连接的诸条件中,只要有一个条件无合适的存取路径,就只能用顺序扫描!的存取路径,就只能用顺序扫描!制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组6.3.2 6.3.2 6.3.2 6.3.2 连接操作的实现和优化连接操作的实现和优化连接操作的实现和优化连
17、接操作的实现和优化 连接开销较大,为查询优化的重点,这里连接开销较大,为查询优化的重点,这里连接开销较大,为查询优化的重点,这里连接开销较大,为查询优化的重点,这里主要讨论二元连接(主要讨论二元连接(主要讨论二元连接(主要讨论二元连接(Two Way JoinTwo Way JoinTwo Way JoinTwo Way Join)。)。)。)。实现方法实现方法实现方法实现方法1.1.1.1.嵌套循环法(嵌套循环法(嵌套循环法(嵌套循环法(nested loopnested loopnested loopnested loop)2.2.2.2.利用索引或散列寻找匹配元组法利用索引或散列寻找匹配
18、元组法利用索引或散列寻找匹配元组法利用索引或散列寻找匹配元组法3.3.3.3.排序归并排序归并排序归并排序归并4.4.4.4.散列连接法散列连接法散列连接法散列连接法制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组1).1).嵌套循环嵌套循环 关系关系关系关系R R R R与与与与S S S S进行连接操作,最原始的办法是取进行连接操作,最原始的办法是取进行连接操作,最原始的办法是取进行连接操作,最原始的办法是取R R R R的一个元组,与的一个元组,与的一个元组,与的一个元组,与S S S S的所有元组比较,凡是满足连的所有元组比较,凡是满足连的所有元组比较,凡是满足连的所有元组比较,
19、凡是满足连接条件的元组就进行连接并且作为结果输出。然接条件的元组就进行连接并且作为结果输出。然接条件的元组就进行连接并且作为结果输出。然接条件的元组就进行连接并且作为结果输出。然后再取后再取后再取后再取R R R R的下一个元组,和的下一个元组,和的下一个元组,和的下一个元组,和S S S S的所有元组比较,直的所有元组比较,直的所有元组比较,直的所有元组比较,直到到到到R R R R的所有元组比较完为止。的所有元组比较完为止。的所有元组比较完为止。的所有元组比较完为止。R S R.A=S.BR(n个个)S(m个个)ij制作:倪巍伟 东南大学计算机科学与工程学院数据库课程组嵌套循环算法嵌套循环
20、算法/*/*/*/*设设设设R R R R有有有有n n n n个元组,个元组,个元组,个元组,S S S S有有有有m m m m个元组个元组个元组个元组*/*/*/*/i:=1,j:=1;i:=1,j:=1;i:=1,j:=1;i:=1,j:=1;while(in)while(in)while(in)while(in)dowhile(jm)dowhile(jm)dowhile(jm)dowhile(jm)doif R(i)A=S(j)B doif R(i)A=S(j)B doif R(i)A=S(j)B doif R(i)A=S(j)B then then then then 输出输出输出
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第6章 查询处理和优化 查询 处理 优化
限制150内