关系查询和查询优化.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《关系查询和查询优化.ppt》由会员分享,可在线阅读,更多相关《关系查询和查询优化.ppt(24页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、关系查询和查询优化现在学习的是第1页,共24页9.1 关系数据库系统的查询处理关系数据库系统的查询处理v查询分析查询分析v查询检查查询检查v查询优化查询优化v查询执行查询执行词法分析词法分析语法分析语法分析语义转换语义转换符号名转换符号名转换安全性检查安全性检查完整性检查完整性检查查询树查询树代数优化代数优化物理优化等物理优化等执行策略描述执行策略描述代码生成代码生成执行查询计划的代码执行查询计划的代码数据库数据库数据字典数据字典查询语句查询语句查询分析查询分析查询检查查询检查查询优化查询优化查询执行查询执行图图9.1 查询处理步骤查询处理步骤9.1.1 查询处理的步骤查询处理的步骤现在学习的
2、是第2页,共24页9.1.2 实现查询操作的算法示例实现查询操作的算法示例一、选择操作的实现一、选择操作的实现 例例1 SELECT * FROM student WHERE C1:无条件;:无条件;C2:Sno=200215121;C3:Sage20;C4:Sdept=CS AND Sage20方法方法: :1.1.简单的全表扫描简单的全表扫描2.2.索引或散列扫描索引或散列扫描二、连接操作的实现二、连接操作的实现例例2 SELECT * FROM student,SC WHERE student.Sno=SC.Sno方法:方法:1.1.嵌套循环方法嵌套循环方法2.2.排序合并方法排序合并方
3、法3.3.索引连接方法索引连接方法4.Hash Join4.Hash Join方法方法现在学习的是第3页,共24页9.2 关系数据库系统的查询优化关系数据库系统的查询优化9.2.1 查询优化概述查询优化概述v查询优化的必要性查询优化的必要性查询优化极大地影响查询优化极大地影响RDBMS的性能。的性能。v查询优化的可能性查询优化的可能性关系数据语言的关系数据语言的级别很高级别很高,使,使DBMS可以从关系表达式中分析查询可以从关系表达式中分析查询语义语义。 现在学习的是第4页,共24页由由DBMS进行查询优化的好处进行查询优化的好处用户不必考虑如何最好地表达查询以获得较好的效率,系统可以比用户用
4、户不必考虑如何最好地表达查询以获得较好的效率,系统可以比用户程序的程序的优化优化做得更好。做得更好。优化器可以从数据字典中获取许多统计信息,而用户程序则难以获得这些信息优化器可以从数据字典中获取许多统计信息,而用户程序则难以获得这些信息 。如果数据库的物理统计信息改变了,系统可以自动对查询如果数据库的物理统计信息改变了,系统可以自动对查询重新优化重新优化以选择相适应以选择相适应的执行计划。在非关系系统中必须重写程序,而重写程序在实际应用中往往是不太可的执行计划。在非关系系统中必须重写程序,而重写程序在实际应用中往往是不太可能的。能的。优化器可以考虑数百种不同的执行计划,而程序员一般只能考虑有限
5、的几种可能性。优化器可以考虑数百种不同的执行计划,而程序员一般只能考虑有限的几种可能性。优化器中包括了很多复杂的优化技术。这些技术往往只有最好的程序员才能掌握。系优化器中包括了很多复杂的优化技术。这些技术往往只有最好的程序员才能掌握。系统的自动优化相当于使的所有人都拥有这些优化技术。统的自动优化相当于使的所有人都拥有这些优化技术。现在学习的是第5页,共24页查询优化目标查询优化目标v查询优化的总目标查询优化的总目标选择有效策略,求得给定关系表达式的值选择有效策略,求得给定关系表达式的值v实际系统的查询优化步骤实际系统的查询优化步骤1. 将查询转换成某种内部表示,通常是语法树将查询转换成某种内部
6、表示,通常是语法树2. 根据一定的等价变换规则把语法树转换成标准根据一定的等价变换规则把语法树转换成标准 (优化)形式(优化)形式3.选择低层的操作算法选择低层的操作算法对于语法树中的每一个操作对于语法树中的每一个操作计算各种执行算法的执行代价计算各种执行算法的执行代价选择代价小的执行算法选择代价小的执行算法4. 生成查询计划生成查询计划(查询执行方案查询执行方案)查询计划是由一系列内部操作组成的。查询计划是由一系列内部操作组成的。现在学习的是第6页,共24页基于代价模型的优化算法基于代价模型的优化算法v集中式数据库集中式数据库单用户系统单用户系统总代价总代价 = I/O代价代价 + CPU代
7、价代价多用户系统多用户系统总代价总代价 = I/O代价代价 + CPU代价代价 + 内存代价内存代价v分布式数据库分布式数据库 总代价总代价 = I/O代价代价 + CPU代价代价+ 内存代价内存代价 + 通信代价通信代价 代价模型代价模型现在学习的是第7页,共24页9.2.2 一个实例一个实例 例例3 求选修了课程求选修了课程2的学生姓名的学生姓名 SELECT Student.Sname FROM Student, SC WHERE Student.Sno=SC.Sno AND SC.Cno=2; 执行策略执行策略1 n a m e(S t u d e n t . S n o = S C
8、. S n o S C . C n o = 2 (StudentSC)2 name(SC.Cno= 2 (Student SC) 3 name(Student SC.Cno=2 (SC)现在学习的是第8页,共24页9.3 代数优化代数优化v基于关系代数等价变换规则的优化方法为基于关系代数等价变换规则的优化方法为代数优化;代数优化;v代数优化策略是通过对关系代数表达式的等价变换来提高查代数优化策略是通过对关系代数表达式的等价变换来提高查询效率;询效率;v关系代数表达式的等价是指用相同的关系代替两个表达式中关系代数表达式的等价是指用相同的关系代替两个表达式中相应的关系所得到的结果是相同的;相应的关
9、系所得到的结果是相同的;v两个表达式两个表达式E1和和E2是等价的是等价的,记为记为E1 E2。现在学习的是第9页,共24页9.3.1 关系代数表达式等价变换规则关系代数表达式等价变换规则设设E1、E2等是关系代数表达式,等是关系代数表达式,F是条件表达式是条件表达式l. 连接、笛卡尔积交换律连接、笛卡尔积交换律E1 E2 E2E1E1 E2E2 E1 E1 F E2E2 F E1 常用的等价变换规则常用的等价变换规则现在学习的是第10页,共24页 2. 连接、笛卡尔积的结合律连接、笛卡尔积的结合律 (E1E2) E3 E1 (E2E3) (E1 E2) E3 E1 (E2 E3) (E1 E
10、2) E3 E1 (E2 E3) F F F F现在学习的是第11页,共24页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的子集的子集 现在学习的是第12页,共24页4. 选择的串接定律选择的串接定律 F1 ( F2(E) F1 F2(E)选择的串接律说明选择的串接律说明 选择条件可以合并选择条件可以合并这样一次就可检查全部条件。这样一次就可检查全部
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 关系 查询 优化
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内