《第8章关系查询处理与查询优化》由会员分享,可在线阅读,更多相关《第8章关系查询处理与查询优化(50页珍藏版)》请在金锄头文库上搜索。
1、第第8 8章章关系查询处理与查询优化关系查询处理与查询优化8.1关系数据库系统的查询处理关系数据库系统的查询处理8.2关系数据库系统的查询优化关系数据库系统的查询优化8.3查询优化的一般准则查询优化的一般准则8.4代数优化代数优化8.5物理优化物理优化8.6小结小结否悬琴腰恫顽漠论痹镀官绳搬蛛柿否苍聊宏胚催颂埃珍撼冕梢霖鬼挣嗓碱第8章关系查询处理与查询优化第8章关系查询处理与查询优化本章要求与重难点本章要求与重难点v掌握关系数据库系统的查询处理步骤掌握关系数据库系统的查询处理步骤v掌握掌握RDBMS中查询优化技术中查询优化技术(重点和难点重点和难点)菱炽寸晰森吮菜胜烤教异仍仇蛛组刃凭俏蓝咕估贝
2、采盲矗芦菇污灿苫宵猪第8章关系查询处理与查询优化第8章关系查询处理与查询优化第第8 8章章关系查询处理与查询优化关系查询处理与查询优化8.1关系数据库系统的查询处理关系数据库系统的查询处理8.2关系数据库系统的查询优化关系数据库系统的查询优化8.3查询优化的一般准则查询优化的一般准则8.4代数优化代数优化8.5物理优化物理优化8.6小结小结疽泰肢貌痰办冷嚣厄脓烤芋表溶壤亩晕捎催存巩览晕史耶兄掏圣绅悲尿敲第8章关系查询处理与查询优化第8章关系查询处理与查询优化8.1 8.1 关系数据库系统的查询处理关系数据库系统的查询处理1.查询分析查询分析将将查查询询转转换换成成某某种种内内部部表表示示,通通
3、常常是语法树。是语法树。2.查询检查查询检查根根据据一一定定的的等等价价变变换换规规则则把把语语法法树树转换成标准转换成标准(优化)形式。(优化)形式。挪如冶杀并赣稳幂进塌轿还弃莉躯殴径鼠墟恩考驳车肄昌镇弧陇月拂伍仟第8章关系查询处理与查询优化第8章关系查询处理与查询优化关系数据库系统的查询处理(续)关系数据库系统的查询处理(续)3.查询优化查询优化选择低层的操作算法选择低层的操作算法对于语法树中的每一个操作对于语法树中的每一个操作对于语法树中的每一个操作对于语法树中的每一个操作vv计算各种执行算法的执行代价计算各种执行算法的执行代价计算各种执行算法的执行代价计算各种执行算法的执行代价vv选择
4、代价小的执行算法选择代价小的执行算法选择代价小的执行算法选择代价小的执行算法4.4.查询执行查询执行查询执行查询执行生成查询计划生成查询计划生成查询计划生成查询计划( (查询执行方案查询执行方案查询执行方案查询执行方案) )vv查询计划是由一系列内部操作组成的。查询计划是由一系列内部操作组成的。查询计划是由一系列内部操作组成的。查询计划是由一系列内部操作组成的。罪塌拴竞跋恢瞻筑头磐蚁敢瘩瞪演抱攫庐箭北械十刽师寅灯娘中时绎争聊第8章关系查询处理与查询优化第8章关系查询处理与查询优化第第8 8章章关系查询处理与查询优化关系查询处理与查询优化8.1关系数据库系统的查询处理关系数据库系统的查询处理8.
5、2关系数据库系统的查询优化关系数据库系统的查询优化8.3查询优化的一般准则查询优化的一般准则8.4代数优化代数优化8.5物理优化物理优化8.6小结小结岁憎掣研侮讯栽滓赌咸您纳胸庸鳃姑疲涩晴顿季绪缮旦椅篆倡溢和诚局禹第8章关系查询处理与查询优化第8章关系查询处理与查询优化8.2关系数据库系统查询优化关系数据库系统查询优化v查询优化的必要性查询优化的必要性查询优化极大地影响查询优化极大地影响RDBMS的性能。的性能。vv查询优化的可能性查询优化的可能性关系数据语言的关系数据语言的级别很高级别很高,使,使DBMS可可以从关系表达式中分析查询以从关系表达式中分析查询语义语义。名兑唾奄伍匹璃妨崇汹边桌诬
6、痔鸥盾铁同崩蕴犊葱氯瑞恶孝蛀差组潍陕惭第8章关系查询处理与查询优化第8章关系查询处理与查询优化关系数据库系统查询优化(续)关系数据库系统查询优化(续)vv用用户户不不必必考考虑虑如如何何最最好好地地表表达达查查询询以以获获得得较好的效率较好的效率vv系统可以比用户程序的系统可以比用户程序的优化优化做得更好做得更好(1)(1) 优优优优化化化化器器器器可可可可以以以以从从从从数数数数据据据据字字字字典典典典中中中中获获获获取取取取许许许许多多多多统统统统计计计计信信信信息息息息,而用户程序则难以获得这些信息而用户程序则难以获得这些信息而用户程序则难以获得这些信息而用户程序则难以获得这些信息萨轿溅
7、艰牙裸仆粤爆烩拉淑吁刀齐央鹤右超墨僻钝穆合匀承裁澄鹤鞘渊乏第8章关系查询处理与查询优化第8章关系查询处理与查询优化关系数据库系统查询优化(续)关系数据库系统查询优化(续)(2)如如果果数数据据库库的的物物理理统统计计信信息息改改变变了了,系系统统可可以以自自动动对查询对查询重新优化重新优化以选择相适应的执行计划。以选择相适应的执行计划。在在非非关关系系系系统统中中必必须须重重写写程程序序,而而重重写写程程序序在在实实际际应应用中往往是不太可能的。用中往往是不太可能的。(3)优优化化器器可可以以考考虑虑数数百百种种不不同同的的执执行行计计划划,而而程程序序员员一般只能考虑有限的几种可能性一般只能
8、考虑有限的几种可能性。霓咙悄滚炔德证挂奢籍炭王闷貉脓吠蝇瘩曰杂繁芋告欧溅泻韦静杂贸村吭第8章关系查询处理与查询优化第8章关系查询处理与查询优化关系数据库系统查询优化(续)关系数据库系统查询优化(续)v查询优化的总目标查询优化的总目标选择有效策略,求得给定关系表达式的值选择有效策略,求得给定关系表达式的值总灭阅攘烷忠榴髓尧诽壶甜硒张秀朗侠诱横见滤宁差围义姜器户周除炼扭第8章关系查询处理与查询优化第8章关系查询处理与查询优化关系数据库系统查询优化(续)关系数据库系统查询优化(续)例:求选修了课程例:求选修了课程2的学生姓名的学生姓名SELECTStudent.SnameFROMStudent,SC
9、WHEREStudent.Sno=SC.SnoANDSC.Cno=2;碌辅添疏噶绍楔坏法求密埔欲卯党刽辖剩素兢荒繁防俗榆沈菊语梳告揭伞第8章关系查询处理与查询优化第8章关系查询处理与查询优化关系数据库系统查询优化(续)关系数据库系统查询优化(续)假设假设1:外存:外存:Student:1000条条,SC:10000条条,选修选修2号课程号课程:50条条假设假设2:一个内存块:一个内存块装元组装元组装元组装元组:10:10个个个个Student,Student,或或或或100100个个个个SC,SC,内存中一次可以存放内存中一次可以存放:5块块Student元组元组,1块块SC元组和若干块连接结
10、果元组元组和若干块连接结果元组假设假设3:读写速度:读写速度:20块块/秒秒假设假设4:连接方法:连接方法:基于数据块基于数据块的嵌套循环法的嵌套循环法 磋乙栏刨淘谦僚接祸瓜泼哦里峻口嚏筒采茂掇长奠骤亢竭氯画伶观粗釉釜第8章关系查询处理与查询优化第8章关系查询处理与查询优化执行策略执行策略1 1 name(Student.Sno=SC.SnoSC.Cno=2(StudentSC)StudentSC读取总块数读取总块数=读读Student表块数表块数+读读SC表遍数表遍数*每遍块数每遍块数=1000/10+(1000/(105)(10000/100)=100+20100=2100读数据时间读数据
11、时间=2100/20=105秒秒佯竟仅箔拓酪稿恨联叔都纶涂夫辟卧啸肢慨丈瓤酸亡南剿甸酉照捐摹坛抄第8章关系查询处理与查询优化第8章关系查询处理与查询优化不同的执行策略不同的执行策略,考虑考虑I/O时间时间中中间间结结果果大大小小=1000*10000=107(1千千万万条条元组元组)写中间结果时间写中间结果时间=10000000/10/20=50000秒秒读数据时间读数据时间=50000秒秒总时间总时间=1055000050000秒秒=100105秒秒=27.8小时小时旭瘫委航兜达汝宇锈呢谩示雌蛙腮糖褂殷妨统奉揉惊肇俞涪诵暑菲材儡说第8章关系查询处理与查询优化第8章关系查询处理与查询优化关系数
12、据库系统查询优化(续)关系数据库系统查询优化(续)2.2name(SC.Cno=2(StudentSC)读取总块数读取总块数=2100块块读数据时间读数据时间=2100/20=105秒秒中间结果大小中间结果大小=10000(减少(减少1000倍)倍)写中间结果时间写中间结果时间=10000/10/20=50秒秒读数据时间读数据时间=50秒秒总时间总时间1055050秒秒205秒秒=3.8分分娩颧轧伤挚擂魁政怜网豌啼鹰穗郝显灯掇皿属茬泵础链篓展隅秒尊敷拣汾第8章关系查询处理与查询优化第8章关系查询处理与查询优化关系数据库系统查询优化(续)关系数据库系统查询优化(续)3.2Sname(Studen
13、tSC.Cno=2(SC)读读SC表总块数表总块数=10000/100=100块块读数据时间读数据时间=100/20=5秒秒中间结果大小中间结果大小=50条条不必写入外存不必写入外存读读Student表总块数表总块数=1000/10=100块块读数据时间读数据时间=100/20=5秒秒总时间总时间55秒秒10秒秒篷宁谢淖民育事若韧匠裂势阅守穗频粕懈檬勘屏韦倚递航吼宁罚帆成慎逾第8章关系查询处理与查询优化第8章关系查询处理与查询优化关系数据库系统查询优化(续)关系数据库系统查询优化(续)4.2name(StudentSC.Cno=2(SC)假假设设SC表表在在Cno上上有有索索引引,Studen
14、t表表在在Sno上上有索引有索引 读读SC表索引表索引=读读SC表总块数表总块数=50/1001块块读数据时间读数据时间中间结果大小中间结果大小=50条条不必写入外存不必写入外存贿婪琶勘帛扫挖牌孩寄佩苏闺才钧呸搂未臭歹冤蚊精蛔轻汾切对竹扮肌蝎第8章关系查询处理与查询优化第8章关系查询处理与查询优化关系数据库系统查询优化(续)关系数据库系统查询优化(续) 读读Student表索引表索引=读读Student表总块数表总块数=50/10=5块块读数据时间读数据时间总时间总时间=连接运算连接运算连接运算连接运算 例:例:Student.Sno=SC.SnoStudent.Sno=SC.Sno(Stud
15、enttudentSC)StudenttudentSCvv提取公共子表达式提取公共子表达式提取公共子表达式提取公共子表达式竣丧攀瓤凄午搔果缮掣侧万透韧颊派剿桂推木走镇诉码尧阴剃卿昏蓟挟座第8章关系查询处理与查询优化第8章关系查询处理与查询优化第第8 8章章关系查询处理与查询优化关系查询处理与查询优化8.1关系数据库系统的查询处理关系数据库系统的查询处理8.2关系数据库系统的查询优化关系数据库系统的查询优化8.3查询优化的一般准则查询优化的一般准则8.4代数优化代数优化8.5物理优化物理优化8.6小结小结匀席观炔扰擅访囊淮历肉漆调种漂拜崖仔姨困绸臻聪猴瘫碗领斩雪熬丧忍第8章关系查询处理与查询优化
16、第8章关系查询处理与查询优化8.4代数优化代数优化v关系代数表达式等价关系代数表达式等价指指指指用用用用相相相相同同同同的的的的关关关关系系系系代代代代替替替替两两两两个个个个表表表表达达达达式式式式中中中中相相相相应应应应的的的的关关关关系所得到的结果是相同的系所得到的结果是相同的系所得到的结果是相同的系所得到的结果是相同的上上上上面面面面的的的的优优优优化化化化策策策策略略略略大大大大部部部部分分分分都都都都涉涉涉涉及及及及到到到到代代代代数数数数表表表表达达达达式式式式的变换的变换的变换的变换道啦心付蚤好悟定项染剔淘已泣扯灭跳吐购资宪做糯稚堑摸尼晃闰冀蟹碘第8章关系查询处理与查询优化第8
17、章关系查询处理与查询优化常用的等价变换规则常用的等价变换规则设设设设E1E1、E2E2等是关系代数表达式,等是关系代数表达式,等是关系代数表达式,等是关系代数表达式,F F是条件表达式是条件表达式是条件表达式是条件表达式 l.l.连接、笛卡尔积交换律连接、笛卡尔积交换律E1E2E2E1E1E2E2E1E1E2E2E1E1E2E2E1E1E1F FE2E2E2E2F FE1E1呵暑淀蜒询魔淑边骗矿拖舰筛团粥稍没双女魂魁睹兜序演外夜株齿敷乘瓢第8章关系查询处理与查询优化第8章关系查询处理与查询优化关系代数等价变换规则(续)关系代数等价变换规则(续)2.连接、笛卡尔积的结合律连接、笛卡尔积的结合律(
18、E1E2)E3E1(E2E3)(E1E2)E3E1(E2E3)(E1E2)E3E1(E2E3)FFFF柠桥馋辞掩苗禁胰硫啪怔朔荐滨秩贴窿页扇续帕腋蔚连翔链苑拐涣舶拥燎第8章关系查询处理与查询优化第8章关系查询处理与查询优化关系代数等价变换规则(续)关系代数等价变换规则(续)3.投影的串接定律投影的串接定律A1,A2,An(B1,B2,Bm(E)A1,A2,An(E)假设:假设:1)E是关系代数表达式是关系代数表达式2)Ai(i=1,2,n),Bj(j=l,2,m)是属性名是属性名3)A1,A2,An构成构成Bl,B2,Bm的子集的子集栽剂崔希槽县呈陋脉创滋背谓占捷本运降元爱制祷萝嘛欲它炊燎默庆
19、臀松第8章关系查询处理与查询优化第8章关系查询处理与查询优化关系代数等价变换规则(续)关系代数等价变换规则(续)4.选择的串接定律选择的串接定律F1( F2(E)F1F2(E)选择的串接律说明选择的串接律说明选择的串接律说明选择的串接律说明选择条件可以合并选择条件可以合并选择条件可以合并选择条件可以合并这样一次就可检查全部条件。这样一次就可检查全部条件。这样一次就可检查全部条件。这样一次就可检查全部条件。 仆塑锤访狱棺界同雪琅炸膏傍剃牡牢啼厅诊蛙慰抄嘴茶克周布孟孩缺湃亦第8章关系查询处理与查询优化第8章关系查询处理与查询优化关系代数等价变换规则(续)关系代数等价变换规则(续)5.选择与投影的交
20、换律选择与投影的交换律(1)假设假设:选择条件选择条件F只涉及属性只涉及属性A1,AnF(A1,A2,An( (E)A1,A2,An(F(E)(2)假设假设:F中有不属于中有不属于A1,An的属性的属性B1,BmA1,A2,An ( F( (E)A1,A2,An(F (A1,A2,An,B1,B2,Bm(E)歧臆辫服倦融唉吮淫捆宏廊沟跳刚沉缕歉浊哇稽夯黍么绞钾半篱绞款哺享第8章关系查询处理与查询优化第8章关系查询处理与查询优化关系代数等价变换规则(续)关系代数等价变换规则(续)6.选择与笛卡尔积的交换律选择与笛卡尔积的交换律(1)假设:假设:F中涉及的属性都是中涉及的属性都是E1中的属性中的属
21、性F(E1E2)F(E1)E2(2)假设:假设:F=F1F2,并且,并且F1只涉及只涉及E1中的属性,中的属性,F2只涉及只涉及E2中的属性中的属性则由上面的等价变换规则则由上面的等价变换规则1,4,6可推出:可推出:F(E1E2)F1(E1)F2(E2)嘶蒂蒙啡戈匣沫蚊滔顷瓜洁阻杂滨疲诽瞧条枉辊糠爱撼耍粗漱拼滞揉霓烤第8章关系查询处理与查询优化第8章关系查询处理与查询优化关系代数等价变换规则(续)关系代数等价变换规则(续)(3)假设:假设:F=F1F2,F1只涉及只涉及E1中的属性,中的属性,F2涉及涉及E1和和E2两者的属性两者的属性F F(E1E2)(E1E2)F2F2(F1F1(E1)
22、E2)(E1)E2)它使部分选择在笛卡尔积前先做它使部分选择在笛卡尔积前先做它使部分选择在笛卡尔积前先做它使部分选择在笛卡尔积前先做圭肠坡身芜帕穿曙佩尧淆境幽粮害蕾摩肮背衫炕小露绸嘘店下母眶侗耘陪第8章关系查询处理与查询优化第8章关系查询处理与查询优化关系代数等价变换规则(续)关系代数等价变换规则(续)7.选择与并的交换选择与并的交换假设:假设:E=E1E2,E1,E2有相同的属性名有相同的属性名F(E1E2)F(E1)F(E2)8.选择与差运算的交换选择与差运算的交换假设:假设:E1与与E2有相同的属性名有相同的属性名F(E1-E2)F(E1)-F(E2)葫薛称狭逞尚睹瓦回廖折席盆爷彼俐酮脱
23、浚先族嘶汀常缎涌咋宪掂目能架第8章关系查询处理与查询优化第8章关系查询处理与查询优化关系代数等价变换规则(续)关系代数等价变换规则(续)9.投影与笛卡尔积的交换投影与笛卡尔积的交换假设:假设:E1和和E2是两个关系表达式,是两个关系表达式,A1,An是是E1的属性,的属性,B1,Bm是是E2的属性的属性 A1,A2,A1,A2,An,B1,B2,An,B1,B2,Bm,Bm (E1E2)E1E2) A1,A2,A1,A2,An,An(E1)E1) B1,B2,B1,B2,Bm,Bm(E2)(E2)齿桅鹊汉校茂找劣损把譬贬姜夸乃用娄法耿励冠镊欺腾裹舌伸病权脱言温第8章关系查询处理与查询优化第8章
24、关系查询处理与查询优化关系代数等价变换规则(续)关系代数等价变换规则(续)l0.投影与并的交换投影与并的交换假设:假设:E1和和E2有相同的属性名有相同的属性名 A1,A2,An(E1E2)A1,A2,An(E1)A1,A2,An(E2)惮舔搅监璃机乾淬块糜械洼装炉霍斥野纤责乎墅拐奴廖证揣驳碰骏野赢吭第8章关系查询处理与查询优化第8章关系查询处理与查询优化小结小结1-2:连接、笛卡尔积连接、笛卡尔积的交换律、结合律的交换律、结合律3:合并或分解合并或分解投影投影运算运算4:合并或分解合并或分解选择选择运算运算5-8:选择运算与其他运算交换选择运算与其他运算交换5,9,10:投影运算与其他运算交
25、换投影运算与其他运算交换自橙竭显米荫妆大妄犯危绍润豺转耙凄蛆阿督褐葡距猿正吏织销痔纤泅婆第8章关系查询处理与查询优化第8章关系查询处理与查询优化关系代数表达式的优化算法关系代数表达式的优化算法算法:关系表达式的优化算法:关系表达式的优化输入:一个关系表达式的语法树。输入:一个关系表达式的语法树。输出:计算该表达式的程序。输出:计算该表达式的程序。方法:方法:(1)分解选择运算)分解选择运算利用规则利用规则4把形如把形如F1F2Fn(E)变换为变换为F1(F2(Fn(E)屏痪缺益洋撞颅基煮政谁迫攒滓搞塘氨铡口晴瘁博蹲妙娥娩肿躺象例肪默第8章关系查询处理与查询优化第8章关系查询处理与查询优化关系代
26、数表达式的优化算法关系代数表达式的优化算法(续续)(2)通过交换选择运算,将其尽可能移到叶端)通过交换选择运算,将其尽可能移到叶端对对每每一一个个选选择择,利利用用规规则则48尽尽可可能能把把它它移移到到树的叶端。树的叶端。(3)通过交换投影运算,将其尽可能移到叶端)通过交换投影运算,将其尽可能移到叶端对对每每一一个个投投影影利利用用规规则则3,9,l0,5中中的的一一般般形形式尽可能把它移向树的叶端。式尽可能把它移向树的叶端。遁泛富屏徊隐餐嚎蛋磕浮可孪寡汾祈儿匝慷弱划狸啼窘醛癣援园洪秀堡夺第8章关系查询处理与查询优化第8章关系查询处理与查询优化关系代数表达式的优化算法关系代数表达式的优化算法
27、(续续)(4)合合并并串串接接的的选选择择和和投投影影,以以便便能能同同时时执执行行或或在一次扫描中完成在一次扫描中完成利利利利用用用用规规规规则则则则3 35 5把把把把选选选选择择择择和和和和投投投投影影影影的的的的串串串串接接接接合合合合并并并并成成成成单单单单个选择、单个投影或一个选择后跟一个投影。个选择、单个投影或一个选择后跟一个投影。个选择、单个投影或一个选择后跟一个投影。个选择、单个投影或一个选择后跟一个投影。使使使使多多多多个个个个选选选选择择择择或或或或投投投投影影影影能能能能同同同同时时时时执执执执行行行行,或或或或在在在在一一一一次次次次扫扫扫扫描中全部完成描中全部完成描
28、中全部完成描中全部完成尽尽尽尽管管管管这这这这种种种种变变变变换换换换似似似似乎乎乎乎违违违违背背背背“ “投投投投影影影影尽尽尽尽可可可可能能能能早早早早做做做做” ”的原则,但这样做效率更高。的原则,但这样做效率更高。的原则,但这样做效率更高。的原则,但这样做效率更高。 颧鞋奇睁葡厂琴嚏调荧卧婴辫痕丽迅租遁苑昔儿律诧寝宝片单炸逢畴镁幂第8章关系查询处理与查询优化第8章关系查询处理与查询优化关系代数表达式的优化算法关系代数表达式的优化算法(续续)(5)对内结点分组)对内结点分组把上述得到的语法树的内节点分组。把上述得到的语法树的内节点分组。把上述得到的语法树的内节点分组。把上述得到的语法树的
29、内节点分组。每每每每一一一一双双双双目目目目运运运运算算算算(, ,-) -)和和和和它它它它所所所所有有有有的的的的直直直直接祖先为一组接祖先为一组接祖先为一组接祖先为一组( (这些直接祖先是这些直接祖先是这些直接祖先是这些直接祖先是 ,运算运算运算运算) )。如如如如果果果果其其其其后后后后代代代代直直直直到到到到叶叶叶叶子子子子全全全全是是是是单单单单目目目目运运运运算算算算,则则则则也也也也将将将将它它它它们们们们并并并并入入入入该该该该组组组组,但但但但当当当当双双双双目目目目运运运运算算算算是是是是笛笛笛笛卡卡卡卡尔尔尔尔积积积积()(),而而而而且且且且其其其其后后后后的的的的选
30、选选选择择择择不不不不能能能能与与与与它它它它结结结结合合合合为为为为等等等等值值值值连接时除外。把这些单目运算单独分为一组连接时除外。把这些单目运算单独分为一组连接时除外。把这些单目运算单独分为一组连接时除外。把这些单目运算单独分为一组。 娠仇俩阳丁猪乘撞焚锹戒锄楔芦尔鲤马系五跟膏之倡揍恤润铜槛同泵慑痛第8章关系查询处理与查询优化第8章关系查询处理与查询优化关系代数表达式的优化算法关系代数表达式的优化算法(续续)(6)生成程序)生成程序生生生生成成成成一一一一个个个个程程程程序序序序,每每每每组组组组结结结结点点点点的的的的计计计计算算算算是是是是程程程程序序序序中中中中的的的的一步。一步。
31、一步。一步。各各各各步步步步的的的的顺顺顺顺序序序序是是是是任任任任意意意意的的的的,只只只只要要要要保保保保证证证证任任任任何何何何一一一一组组组组的的的的计算不会在它的后代组之前计算计算不会在它的后代组之前计算计算不会在它的后代组之前计算计算不会在它的后代组之前计算。 泉竟疏了扣颠嘻意冲己疽纯尿密孙较甄琵五菠怜毛宗蛾毫霍捞穴驻坞混握第8章关系查询处理与查询优化第8章关系查询处理与查询优化第第8 8章章关系查询处理与查询优化关系查询处理与查询优化8.1关系数据库系统的查询处理关系数据库系统的查询处理8.2关系数据库系统的查询优化关系数据库系统的查询优化8.3查询优化的一般准则查询优化的一般准
32、则8.4代数优化代数优化8.5物理优化物理优化8.6小结小结魁蓬钧暑下诣坞戚十遗来福篱碎联坤固凯质骆啮癌詹楼哪市贩北涡抠呼酷第8章关系查询处理与查询优化第8章关系查询处理与查询优化8.5 8.5 物理优化物理优化物理优化就是要选择高效合理的物理优化就是要选择高效合理的操作算法或存取路径,求得优化得查操作算法或存取路径,求得优化得查询计划,达到查询优化的目标。询计划,达到查询优化的目标。疹木朗说爽倚脯撤驾害流瑶赖舅瘪萝趴冬十扫耸学居洲怜慧煽耿紫硬扯俄第8章关系查询处理与查询优化第8章关系查询处理与查询优化物理优化(续)物理优化(续)选择的方法可以是:选择的方法可以是:v基于规则的启发式优化基于规
33、则的启发式优化v基于代价估算的优化基于代价估算的优化v两者结合的优化方法两者结合的优化方法啥罪蛀潜装峻酬审广濒起按伯淡固姿孩喇譬颂偏商指猿樱漳坊轨归许惺沼第8章关系查询处理与查询优化第8章关系查询处理与查询优化优化的一般步骤优化的一般步骤1把查询转换成某种内部表示把查询转换成某种内部表示2代数优化:把语法树转换成标准(优化)代数优化:把语法树转换成标准(优化)形式形式3物理优化:选择低层的存取路径物理优化:选择低层的存取路径4生成查询计划,选择代价最小的生成查询计划,选择代价最小的惠挞硫章屎汛薄今题玖剖澄运奏趾屋盔辛窄酒厉巩绍炳条池燎醉品袋业颗第8章关系查询处理与查询优化第8章关系查询处理与查
34、询优化优化的一般步骤优化的一般步骤(续续)(1)把查询转换成某种内部表示)把查询转换成某种内部表示例:求选修了课程例:求选修了课程2的学生姓名的学生姓名SELECTStudent.SnameFROMStudent,SCWHEREStudent.Sno=SC.SnoANDSC.Cno=2;某鞋伏肇禁蛰给液馈皑钒俘整镶澳挪棚墒婿绣治刮侣绍筐乞附仿钻范贩汽第8章关系查询处理与查询优化第8章关系查询处理与查询优化(1)把查询转换成某种内部表示)把查询转换成某种内部表示语法树语法树结果结果project(Sname) select(SC.Cno= 2 ) join(Student.Sno=SC.Sno)
35、 StudentSC羚茨记列富淬糟淖籍急堰椎珊窿妥佩约蹭购近骏束肺粱稼豫云甸误停炙羡第8章关系查询处理与查询优化第8章关系查询处理与查询优化关系代数语法树关系代数语法树Sname SC.Cno=2 Student.Sno=SC.S StudentSC湍羡孰渐辛详驻卑询爽饰醒都彰沤佐氦讽祟梢获棺攘五阎讽线止坪旅腰男第8章关系查询处理与查询优化第8章关系查询处理与查询优化(2)代数优化)代数优化利用优化算法把语法树转换成标准(优化)形式利用优化算法把语法树转换成标准(优化)形式Sname Student.Sno=SC.Sno SC.Cno= 2 StudentSC斤您业隆寞秧苟禹牡柠幢囤厨谷竟私芥
36、龟秧榆床慧挟绷巨衍抡勘缩吟抓使第8章关系查询处理与查询优化第8章关系查询处理与查询优化(3)物理优化:选择低层的存取路径)物理优化:选择低层的存取路径-优化器查找数据字典获得当前数据库状态信息优化器查找数据字典获得当前数据库状态信息选择字段上是否有索引选择字段上是否有索引连接的两个表是否有序连接的两个表是否有序连接字段上是否有索引连接字段上是否有索引然后根据一定的优化规则选择存取路径然后根据一定的优化规则选择存取路径如如本本例例中中若若SC表表上上建建有有Cno的的索索引引,则则应应该该利利用用这个索引,而不必顺序扫描这个索引,而不必顺序扫描SC表。表。掠孪撰帚紧吟佑嚣贼便捆谊睛殆整师扭痘视焦
37、水恢掏画带癌柞讶酸爹埃文第8章关系查询处理与查询优化第8章关系查询处理与查询优化(4)生成查询计划,选择代价最小的)生成查询计划,选择代价最小的在在作作连连接接运运算算时时,若若两两个个表表(设设为为R1,R2)均均无无序序,连连接接属性上也没有索引,则可以有下面几种查询计划属性上也没有索引,则可以有下面几种查询计划:对两个表作排序预处理对两个表作排序预处理对对R1在连接属性上建索引在连接属性上建索引对对R2在连接属性上建索引在连接属性上建索引在在R1,R2的连接属性上均建索引的连接属性上均建索引对不同的查询计划计算代价,选择代价最小的一个。对不同的查询计划计算代价,选择代价最小的一个。在在计
38、计算算代代价价时时主主要要考考虑虑磁磁盘盘读读写写的的I/O数数,内内存存CPU处理时间在粗略计算时可不考虑。处理时间在粗略计算时可不考虑。闺筐啃好烹昂位搀吸选照藏峰三壳惯亏仅呈唾兽糯罩逝裙钉疯拎碗兽曰汁第8章关系查询处理与查询优化第8章关系查询处理与查询优化小结小结v关系系统的查询优化关系系统的查询优化 代数优化:关系代数表达式的优化代数优化:关系代数表达式的优化代数优化:关系代数表达式的优化代数优化:关系代数表达式的优化vv关系代数等价变换规则关系代数等价变换规则关系代数等价变换规则关系代数等价变换规则vv关系代数表达式的优化算法关系代数表达式的优化算法关系代数表达式的优化算法关系代数表达式的优化算法 物理优化:存取路径和低层操作算法的选择物理优化:存取路径和低层操作算法的选择物理优化:存取路径和低层操作算法的选择物理优化:存取路径和低层操作算法的选择怕语职峡阜交榜售泊经沟论眠芳烯伺巳手暑撂吗喧蜡鼠担氢责永雍郊淄努第8章关系查询处理与查询优化第8章关系查询处理与查询优化