第8章关系查询处理与查询优化

上传人:沈*** 文档编号:173295185 上传时间:2022-12-09 格式:PPT 页数:50 大小:190KB
收藏 版权申诉 举报 下载
第8章关系查询处理与查询优化_第1页
第1页 / 共50页
第8章关系查询处理与查询优化_第2页
第2页 / 共50页
第8章关系查询处理与查询优化_第3页
第3页 / 共50页
资源描述:

《第8章关系查询处理与查询优化》由会员分享,可在线阅读,更多相关《第8章关系查询处理与查询优化(50页珍藏版)》请在装配图网上搜索。

1、第第8 8章章8.1 关系数据库系统的查询处理关系数据库系统的查询处理8.2 关系数据库系统的查询优化关系数据库系统的查询优化8.3 查询优化的一般准则查询优化的一般准则 8.4 代数优化代数优化8.5 物理优化物理优化8.6 小结小结本章要求与重难点本章要求与重难点v掌握关系数据库系统的查询处理步骤掌握关系数据库系统的查询处理步骤v掌握掌握RDBMS中查询优化技术中查询优化技术(重点和难点重点和难点)第第8 8章章8.1 关系数据库系统的查询处理关系数据库系统的查询处理8.2 关系数据库系统的查询优化关系数据库系统的查询优化8.3 查询优化的一般准则查询优化的一般准则 8.4 代数优化代数优

2、化8.5 物理优化物理优化8.6 小结小结3.查询优化查询优化选择低层的操作算法选择低层的操作算法第第8 8章章8.1 关系数据库系统的查询处理关系数据库系统的查询处理8.2 关系数据库系统的查询优化关系数据库系统的查询优化8.3 查询优化的一般准则查询优化的一般准则 8.4 代数优化代数优化8.5 物理优化物理优化8.6 小结小结8.2关系数据库系统查询优化关系数据库系统查询优化v查询优化的必要性查询优化的必要性查询优化极大地影响查询优化极大地影响RDBMS的性能。的性能。关系数据库系统查询优化(续)关系数据库系统查询优化(续)关系数据库系统查询优化(续)关系数据库系统查询优化(续)(2)如

3、果数据库的物理统计信息改变了,系统可以自动如果数据库的物理统计信息改变了,系统可以自动对查询对查询重新优化重新优化以选择相适应的执行计划。以选择相适应的执行计划。在非关系系统中必须重写程序,而重写程序在实际应在非关系系统中必须重写程序,而重写程序在实际应用中往往是不太可能的。用中往往是不太可能的。(3)优化器可以考虑数百种不同的执行计划,而程序员优化器可以考虑数百种不同的执行计划,而程序员一般只能考虑有限的几种可能性一般只能考虑有限的几种可能性。关系数据库系统查询优化(续)关系数据库系统查询优化(续)v查询优化的总目标查询优化的总目标 选择有效策略,求得给定关系表达式的值选择有效策略,求得给定

4、关系表达式的值关系数据库系统查询优化(续)关系数据库系统查询优化(续)例:求选修了课程例:求选修了课程2的学生姓名的学生姓名 SELECT Student.SnameFROM Student,SCWHERE Student.Sno=SC.SnoAND SC.Cno=2;关系数据库系统查询优化(续)关系数据库系统查询优化(续)假设假设1:外存:外存:Student:1000条条,SC:10000条条,选修选修2号课程号课程:50条条假设假设2:一个内存块:一个内存块内存中一次可以存放内存中一次可以存放:5块块Student元组元组,1块块SC元组和若干块连接结果元组元组和若干块连接结果元组假设假

5、设3:读写速度:读写速度:20块块/秒秒假设假设4:连接方法:连接方法:基于数据块基于数据块的嵌套循环法的嵌套循环法 执行策略执行策略11 n a m e(S t u d e n t.S n o=S C.S n o S C.C n o=2 (StudentSC)StudentSC 读取总块数读取总块数=读读Student表块数表块数+读读SC表遍数表遍数 *每遍块数每遍块数=1000/10+(1000/(105)(10000/100)=100+20100=2100 读数据时间读数据时间=2100/20=105秒秒不同的执行策略不同的执行策略,考虑考虑I/O时间时间中间结果大小中间结果大小=10

6、00*10000=107 (1千万条元千万条元组组)写中间结果时间写中间结果时间=10000000/10/20=50000秒秒 读数据时间读数据时间=50000秒秒 总时间总时间=1055000050000秒秒=100105秒秒 =27.8小时小时关系数据库系统查询优化(续)关系数据库系统查询优化(续)2.2 name(SC.Cno=2(Student SC)读取总块数读取总块数=2100块块读数据时间读数据时间=2100/20=105秒秒中间结果大小中间结果大小=10000 (减少(减少1000倍)倍)写中间结果时间写中间结果时间=10000/10/20=50秒秒 读数据时间读数据时间=50

7、秒秒 总时间总时间1055050秒秒205秒秒=3.8分分 关系数据库系统查询优化(续)关系数据库系统查询优化(续)3.2 Sname(Student SC.Cno=2(SC)读读SC表总块数表总块数=10000/100=100块块读数据时间读数据时间=100/20=5秒秒 中间结果大小中间结果大小=50条条 不必写入外存不必写入外存 读读Student表总块数表总块数=1000/10=100块块读数据时间读数据时间=100/20=5秒秒 总时间总时间55秒秒10秒秒 关系数据库系统查询优化(续)关系数据库系统查询优化(续)4.2 name(Student SC.Cno=2(SC)假设假设SC

8、表在表在Cno上有索引,上有索引,Student表在表在Sno上上有索引有索引 读读SC表索引表索引=读读SC表总块数表总块数=50/1001块块读数据时间读数据时间 中间结果大小中间结果大小=50条条 不必写入外存不必写入外存关系数据库系统查询优化(续)关系数据库系统查询优化(续)读读Student表索引表索引=读读Student表总块数表总块数=50/10=5块块读数据时间读数据时间 总时间总时间10秒秒第第8 8章章8.1 关系数据库系统的查询处理关系数据库系统的查询处理8.2 关系数据库系统的查询优化关系数据库系统的查询优化8.3 查询优化的一般准则查询优化的一般准则 8.4 代数优化

9、代数优化8.5 物理优化物理优化8.6 小结小结8.3 查询优化的一般准则查询优化的一般准则 v选择运算应尽可能先做选择运算应尽可能先做 目的:减小中间关系目的:减小中间关系查询优化的一般准则查询优化的一般准则(续)(续)v某些选择运算在其前面执行的笛卡尔积某些选择运算在其前面执行的笛卡尔积 第第8 8章章8.1 关系数据库系统的查询处理关系数据库系统的查询处理8.2 关系数据库系统的查询优化关系数据库系统的查询优化8.3 查询优化的一般准则查询优化的一般准则 8.4 代数优化代数优化8.5 物理优化物理优化8.6 小结小结8.4 代数优化代数优化 v关系代数表达式等价关系代数表达式等价常用的

10、等价变换规则常用的等价变换规则关系代数等价变换规则(续)关系代数等价变换规则(续)2.连接、笛卡尔积的结合律连接、笛卡尔积的结合律 (E1E2)E3 E1 (E2E3)(E1 E2)E3 E1 (E2 E3)(E1 E2)E3 E1 (E2 E3)F F F F关系代数等价变换规则(续)关系代数等价变换规则(续)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的子集的子集 关系代数等价变换

11、规则(续)关系代数等价变换规则(续)4.选择的串接定律选择的串接定律 F1(F2(E)F1 F2(E)关系代数等价变换规则(续)关系代数等价变换规则(续)5.选择与投影的交换律选择与投影的交换律(1)假设假设:选择条件选择条件F只涉及属性只涉及属性A1,An F(A1,A2,AnE)A1,A2,An(F(E)(2)假设假设:F中有不属于中有不属于A1,An的属性的属性B1,Bm A1,A2,An(F E)A1,A2,An(F(A1,A2,An,B1,B2,Bm(E)关系代数等价变换规则(续)关系代数等价变换规则(续)6.选择与笛卡尔积的交换律选择与笛卡尔积的交换律(1)假设:假设:F中涉及的属

12、性都是中涉及的属性都是E1中的属性中的属性 F(E1E2)F(E1)E2(2)假设:假设:F=F1F2,并且,并且F1只涉及只涉及E1中的属性,中的属性,F2只涉及只涉及E2中的属性中的属性 则由上面的等价变换规则则由上面的等价变换规则1,4,6可推出:可推出:F(E1E2)F1(E1)F2(E2)关系代数等价变换规则(续)关系代数等价变换规则(续)(3)假设:假设:F=F1F2,F1只涉及只涉及E1中的属性,中的属性,F2涉及涉及E1和和E2两者的属性两者的属性关系代数等价变换规则(续)关系代数等价变换规则(续)7.选择与并的交换选择与并的交换假设:假设:E=E1E2,E1,E2有相同的属性

13、名有相同的属性名F(E1E2)F(E1)F(E2)8.选择与差运算的交换选择与差运算的交换假设:假设:E1与与E2有相同的属性名有相同的属性名F(E1-E2)F(E1)-F(E2)关系代数等价变换规则(续)关系代数等价变换规则(续)9.投影与笛卡尔积的交换投影与笛卡尔积的交换假设:假设:E1和和E2是两个关系表达式,是两个关系表达式,A1,An是是E1的属性,的属性,B1,Bm是是E2的属性的属性关系代数等价变换规则(续)关系代数等价变换规则(续)l0.投影与并的交换投影与并的交换假设:假设:E1和和E2 有相同的属性名有相同的属性名 A1,A2,An(E1E2)A1,A2,An(E1)A1,

14、A2,An(E2)小结小结1-2:连接、笛卡尔积连接、笛卡尔积的交换律、结合律的交换律、结合律3:合并或分解合并或分解投影投影运算运算4:合并或分解合并或分解选择选择运算运算5-8:选择运算与其他运算交换选择运算与其他运算交换5,9,10:投影运算与其他运算交换投影运算与其他运算交换 关系代数表达式的优化算法关系代数表达式的优化算法 算法:关系表达式的优化算法:关系表达式的优化输入:一个关系表达式的语法树。输入:一个关系表达式的语法树。输出:计算该表达式的程序。输出:计算该表达式的程序。方法:方法:(1)分解选择运算)分解选择运算 利用规则利用规则4把形如把形如F1 F2 Fn(E)变换为变换

15、为 F1(F2(Fn(E)关系代数表达式的优化算法关系代数表达式的优化算法(续续)(2)通过交换选择运算,将其尽可能移到叶端)通过交换选择运算,将其尽可能移到叶端 对每一个选择,利用规则对每一个选择,利用规则48尽可能把它移到尽可能把它移到树的叶端。树的叶端。(3)通过交换投影运算,将其尽可能移到叶端)通过交换投影运算,将其尽可能移到叶端对每一个投影利用规则对每一个投影利用规则3,9,l0,5中的一般形中的一般形式尽可能把它移向树的叶端。式尽可能把它移向树的叶端。关系代数表达式的优化算法关系代数表达式的优化算法(续续)(4)合并串接的选择和投影,以便能同时执行或)合并串接的选择和投影,以便能同

16、时执行或在一次扫描中完成在一次扫描中完成关系代数表达式的优化算法关系代数表达式的优化算法(续续)(5)对内结点分组)对内结点分组关系代数表达式的优化算法关系代数表达式的优化算法(续续)(6)生成程序)生成程序第第8 8章章8.1 关系数据库系统的查询处理关系数据库系统的查询处理8.2 关系数据库系统的查询优化关系数据库系统的查询优化8.3 查询优化的一般准则查询优化的一般准则 8.4 代数优化代数优化8.5 物理优化物理优化8.6 小结小结 物理优化就是要选择高效合理的物理优化就是要选择高效合理的操作算法或存取路径,求得优化得查操作算法或存取路径,求得优化得查询计划,达到查询优化的目标。询计划

17、,达到查询优化的目标。选择的方法可以是:选择的方法可以是:v基于规则的启发式优化基于规则的启发式优化v基于代价估算的优化基于代价估算的优化v两者结合的优化方法两者结合的优化方法优化的一般步骤优化的一般步骤 1把查询转换成某种内部表示把查询转换成某种内部表示2代数优化:把语法树转换成标准(优化)代数优化:把语法树转换成标准(优化)形式形式3物理优化:选择低层的存取路径物理优化:选择低层的存取路径4生成查询计划,选择代价最小的生成查询计划,选择代价最小的 优化的一般步骤优化的一般步骤(续续)(1)把查询转换成某种内部表示)把查询转换成某种内部表示例:求选修了课程例:求选修了课程2的学生姓名的学生姓

18、名SELECT Student.SnameFROM Student,SCWHERE Student.Sno=SC.SnoAND SC.Cno=2;(1)把查询转换成某种内部表示)把查询转换成某种内部表示语法树语法树 结果结果project(Sname)select(SC.Cno=2)join(Student.Sno=SC.Sno)StudentSC关系代数语法树关系代数语法树Sname SC.Cno=2 Student.Sno=SC.S StudentSC(2)代数优化)代数优化利用优化算法把语法树转换成标准(优化)形式利用优化算法把语法树转换成标准(优化)形式 Sname Student.S

19、no=SC.Sno SC.Cno=2 StudentSC(3)物理优化:选择低层的存取路径)物理优化:选择低层的存取路径-优化器查找数据字典获得当前数据库状态信息优化器查找数据字典获得当前数据库状态信息选择字段上是否有索引选择字段上是否有索引连接的两个表是否有序连接的两个表是否有序连接字段上是否有索引连接字段上是否有索引 然后根据一定的优化规则选择存取路径然后根据一定的优化规则选择存取路径 如本例中若如本例中若SC表上建有表上建有Cno的索引,则应该利用的索引,则应该利用这个索引,而不必顺序扫描这个索引,而不必顺序扫描SC表。表。(4)生成查询计划,选择代价最小的)生成查询计划,选择代价最小的

20、在作连接运算时,若两个表在作连接运算时,若两个表(设为设为R1,R2)均无序,连接均无序,连接属性上也没有索引,则可以有下面几种查询计划属性上也没有索引,则可以有下面几种查询计划:对两个表作排序预处理对两个表作排序预处理 对对R1在连接属性上建索引在连接属性上建索引 对对R2在连接属性上建索引在连接属性上建索引 在在R1,R2的连接属性上均建索引的连接属性上均建索引 对不同的查询计划计算代价,选择代价最小的一个。对不同的查询计划计算代价,选择代价最小的一个。在计算代价时主要考虑磁盘读写的在计算代价时主要考虑磁盘读写的I/O数,内存数,内存CPU处理时间在粗略计算时可不考虑。处理时间在粗略计算时可不考虑。小结小结v关系系统的查询优化关系系统的查询优化

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!