查询处理和优化课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《查询处理和优化课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 查询 处理 优化 课件
- 资源描述:
-
1、第第6 6章章 查询处理和优化查询处理和优化6.1 6.1 引言引言查询处理查询处理查询优化查询优化 查询优化查询优化是是查询处理查询处理中的重要一环,对关系中的重要一环,对关系DB尤其如此。尤其如此。从查询语句出发,到获得查询从查询语句出发,到获得查询结果的处理过程。结果的处理过程。DBMS对描述性语言表达的查对描述性语言表达的查询语句进行分析,为其确定合理、有效的执行询语句进行分析,为其确定合理、有效的执行策略和步骤的过程。策略和步骤的过程。例如:例如:12+64+88=?查询优化是查询优化是相对而言相对而言的,可能的执行策略的,可能的执行策略很多,穷尽代价很大,不能片面追求绝对的很多,穷
2、尽代价很大,不能片面追求绝对的最优。最优。(12+88)+64=164数据库查询语言的处理过程数据库查询语言的处理过程:(1)解释方式执行)解释方式执行应用程序应用程序优化占执优化占执行时间!行时间!(2)(2)编译方式编译方式优化不优化不占执行时占执行时间!间!对于常见的例行事务,编译方式可提高性能。对于常见的例行事务,编译方式可提高性能。对于简短的即时查询,解释方式灵活实用。对于简短的即时查询,解释方式灵活实用。解释方式和编译方式各适用于什么情况?解释方式和编译方式各适用于什么情况?6.2 6.2 代数优化代数优化 代数优化对查询进行等效变换,以减少执行开销。代数优化对查询进行等效变换,以
3、减少执行开销。代数优化的原则是代数优化的原则是尽量减小查询过程中间结果的尽量减小查询过程中间结果的大小大小。选择、投影操作通常能够有效地减小关系的大小。选择、投影操作通常能够有效地减小关系的大小。连接、迪卡尔乘积和并操作容易生成较大的查询中连接、迪卡尔乘积和并操作容易生成较大的查询中间结果。间结果。因此,因此,先做选择、投影先做选择、投影;先做小关系间的连接,先做小关系间的连接,再做大关系的连接再做大关系的连接;甚至需要先找出查询中的公共表甚至需要先找出查询中的公共表达式达式,以避免重复运算。,以避免重复运算。常用变换规则常用变换规则).)(.()(21.2 1RRcncccnANDcANDc
4、1.)()(1221RRcccc2.nlistlistlistlistlistlistlistRRn.),().)(.(211213.,.,2,1)()()(,.,2,1,.,2,1AnAACAttrRRAnAAccAnAA4.5.R JN S=S JN RR JN S=S JN RAttr(R)Attr(c)S JN(R)(S)JN(,ccR6.)()2(),()1(),()()(212 1SAttrcAttrRAttrcAttrSJNRSJNRcccANDc7.LcAttrSJNRSJNRSAttrBBRAttrBBBmBcAnAcLmnmn)()()()()(,.,),(A,.,A,.,
5、A,.,AL,.,1,.,11111式中则其中,属性集8.)()()(,SRSRccc则9.)()()(,SRSRLLL则10.)(S )(,TRTSRJN则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)SP(SNUM,PNUM,DEPT,QUAN)SP(SNUM,PNUM,DEPT,QUAN)
6、有如下查询有如下查询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=AND S.CITY=NANJINGNANJING AND P.PNAME=AND P.PNAME=BOLTBOLT AND SP.QUAN 10000 AND SP.QUAN 10000 nSQLSQL语句转化为原始查询树语句转化为原始查询树 Select Select From From W
7、here Where 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 10000 CSpSPSNAME原始查询树原始查询树SNAMECSpSPPNUMPPNUMSP.SNUMSPSNUMS.NANJINGCITYS10000.QUANSP.BOLTPNAMEPSNAMESSPp选择操作尽量下压选择操作尽量下压.NANJINGCITYSSNUMSPSNUMS.10000.QUANSP.BOLTPNAMEPPNUMPP
8、NUMSP.原始查询树原始查询树先连接小关系先连接小关系 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|,S(j)B then jj+1 else if R(i)AS(j)B then ii+1 else /*R(i)A=S(j)B,输出连接元组输出连接元组*/输出输出至至T;/*输出输出R(i)和和S中除中除S(j)外外的其他元组所组成的连接元组的其他元组所组成的连接元组*/lj+1
展开阅读全文