四章关系系统及其查询优化.ppt

上传人:本田雅阁 文档编号:3205714 上传时间:2019-07-30 格式:PPT 页数:62 大小:212.55KB
返回 下载 相关 举报
四章关系系统及其查询优化.ppt_第1页
第1页 / 共62页
四章关系系统及其查询优化.ppt_第2页
第2页 / 共62页
四章关系系统及其查询优化.ppt_第3页
第3页 / 共62页
四章关系系统及其查询优化.ppt_第4页
第4页 / 共62页
四章关系系统及其查询优化.ppt_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《四章关系系统及其查询优化.ppt》由会员分享,可在线阅读,更多相关《四章关系系统及其查询优化.ppt(62页珍藏版)》请在三一文库上搜索。

1、第四章 关系系统及其查询优化,第4章 教学时数:2 教学目的与要求:了解关系数据库以及如何进行查询的优化。 教学重点:查询优化的实现。 教学难点:查询优化的实现。 本章主要阅读文献资料: 1、Date C J, An Introduction to Database System (Ed.7), Addison-Wesley,2000 2、王珊,陈红:数据库系统原理教程, 清华大学出版社,2000,第四章 关系系统及其查询优化,4.1 关系系统 4.2 关系系统的查询优化 4.3 小结,关系系统,能够在一定程度上支持关系模型的数据库管理系统是关系系统。,关系系统与关系模型,关系数据结构 域及域

2、上定义的关系 关系操作 并、交、差、广义笛卡尔积、选择、投影、连接、除等 关系完整性 实体完整性、参照完整性、用户自己定义的完整性,关系系统的定义,一个数据库管理系统可定义为关系系统,当且仅 当它至少支持: 1. 关系数据库(即关系数据结构) 系统中只有表这种结构 2. 支持选择、投影和(自然)连接运算 对这些运算不要求用户定义任何物理存取路径 对关系系统的最低要求,关系系统的定义,不支持关系数据结构的系统显然不能称为关系系统 仅支持关系数据结构,但没有选择、投影和连接运算功能的系统仍不能算作关系系统。 原因:不能提高用户的生产率 支持选择、投影和连接运算,但要求定义物理存取路径,这种系统也不

3、能算作真正的关系系统 原因:就降低或丧失了数据的物理独立性 选择、投影、连接运算是最有用的运算,4.1.2 关系系统的分类,分类依据:支持关系模型的程度 分类 表式系统:支持关系数据结构(即表) (最小)关系系统 支持:关系数据结构 选择、投影、连接关系操作 关系完备的系统 支持:关系数据结构 所有的关系代数操作 全关系系统 支持:关系模型的所有特征,关系系统的分类 (续),第四章 关系系统及其查询优化,4.1 关系系统 4.2 关系系统的查询优化 4.3 小结,4.2 关系系统的查询优化,4.2.1 查询优化概述 4.2.2 查询优化的必要性 4.2.3 查询优化的一般准则 4.2.4 优化

4、的策略:等价变换 4.2.5 关系代数表达式的优化算法 4.2.6 优化的一般步骤,4.2.1 查询优化概述,为什么要进行查询优化 查询优化极大地影响RDBMS的性能。 查询优化的可能性 关系数据语言为查询的优化提供了可能性。,由DBMS进行查询优化的好处,用户不必考虑如何最好地表达查询以获得较好的效率 系统可以比用户程序的优化做得更好 (1) 优化器可以从数据字典中获取许多统计信息,而用户程序则难以获得这些信息,由DBMS进行查询优化的好处,(2)如果数据库的物理统计信息改变了,系统可以自动对查询重新优化以选择相适应的执行计划。 (3)优化器可以考虑数百种不同的执行计划,而程序员一般只能考虑

5、有限的几种可能性。 (4)优化器中包括了很多复杂的优化技术,查询优化目标,查询优化的总目标 选择有效策略,求得给定关系表达式的值,实际系统的查询优化步骤,1. 将查询转换成某种内部表示,通常是语法树 2. 根据一定的等价变换规则把语法树转换成标准(优化)形式 3. 选择低层的操作算法 对于语法树中的每一个操作:计算各种执行算法的执行代价;选择代价小的执行算法 4. 生成查询计划(查询执行方案),代价模型,集中式数据库 单用户系统 总代价 = I/O代价 + CPU代价 多用户系统 总代价 = I/O代价 + CPU代价 + 内存代价 分布式数据库 总代价 = I/O代价 + CPU代价+ 内存

6、代价 + 通信代价,4.2 关系系统的查询优化,4.2.1 查询优化概述 4.2.2 查询优化的必要性 4.2.3 查询优化的一般准则 4.2.4 优化的策略:等价变换 4.2.5 关系代数表达式的优化算法 4.2.6 优化的一般步骤,4.2.2 查询优化的必要性,例:求选修了课程号为2的学生的姓名 SELECT Student.Sname FROM Student, SC WHERE Student.Sno=SC.Sno AND SC.Cno=2;,查询优化的必要性(续),假设1:外存: Student:1000条,SC:10000条, 选修2号课程:50条 假设2:一个内存块装元组:10个

7、Student, 或100个SC, 内存中一次可以存放: 5块Student元组, 1块SC元组和若干块连接结果元组 假设3:读写速度:20块/秒 假设4:连接方法:基于数据块的嵌套循环法,执行策略1,1 name(Student.Sno=SC.Sno SC.Cno=2 (StudentSC) StudentSC 读取总块数= 读Student表块数 + 读SC表遍数 *每遍块数 =1000/10+(1000/(105) (10000/100) =100+20100=2100 读数据时间=2100/20=105秒,不同的执行策略,考虑I/O时间,中间结果大小 = 1000*10000 = 10

8、7 (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秒 总时间1055050秒205秒=3.4分,查询优化的必要性(续),3. 2 Sname(Student SC.Cno= 2 (SC)

9、读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表在Cno上有索引,Student表在Sno上有索引 读SC表索引= 读SC表总块数= 50/1001块 读数据时间 中间结果大小=50条 不必写入外存,查询优化的必要性(续), 读Student表索引= 读Student表总块数= 50/10=5块 读数据时间 总时间10秒,4.

10、2 关系系统的查询优化,4.2.1 查询优化概述 4.2.2 查询优化的必要性 4.2.3 查询优化的一般准则 4.2.4 优化的策略:等价变换 4.2.5 关系代数表达式的优化算法 4.2.6 优化的一般步骤,4.2.3 查询优化的一般准则,选择运算应尽可能先做 目的:减小中间关系 在执行连接操作前对关系适当进行预处理 按连接属性排序 在连接属性上建立索引 投影运算和选择运算同时做 目的:避免重复扫描关系 将投影运算与其前面或后面的双目运算结合 目的:减少扫描关系的遍数,查询优化的一般准则 (续),某些选择运算在其前面执行的笛卡尔积 = 连接运算 例:Student.Sno=SC.Sno (

11、StudentSC) Student SC 提取公共子表达式,4.2 关系系统的查询优化,4.2.1 查询优化概述 4.2.2 查询优化的必要性 4.2.3 查询优化的一般准则 4.2.4 优化的策略:等价变换 4.2.5 关系代数表达式的优化算法 4.2.6 优化的一般步骤,4.2.4 优化的策略:等价变换,关系代数表达式等价 指两个来自同一个关系的不同表达式所得到的结果是相同的 上面的优化策略大部分都涉及到关系代数表达式的等价变换,常用的等价变换规则,设E1、E2等是关系代数表达式,F是条件表达式 l. 连接、笛卡尔积交换律 E1 E2 E2E1 E1 E2E2 E1 E1 F E2E2

12、F E1,关系代数等价变换规则(续),2. 连接、笛卡尔积的结合律 (E1E2) E3 E1 (E2E3) (E1 E2) E3 E1 (E2 E3) (E1 E2) E3 E1 (E2 E3) F F F F,关系代数等价变换规则(续),设L1,L2 Ln为属性集,且L1 L 2 L3 Ln则 L1( (Ln-1 (Ln (E) ) L1(E),3. 投影的串接定律,关系代数等价变换规则(续),4. 选择的串接定律 F1 ( F2(E) F1 F2(E) 选择的串接律说明 选择条件可以合并 这样一次就可检查全部条件。,关系代数等价变换规则(续),5. 选择与投影的交换律 (1)假设: 选择条

13、件F属性集L F (L(E) L(F(E) (2)假设: F的属性涉及L1和L2属性集且L1 L, L2 L L ( F (E) L(F (LL2(E),关系代数等价变换规则(续),6. 选择与笛卡尔积的交换律 (1) 假设:F中涉及的属性都是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两者的属性 F(E1E2) F2(F

14、1(E1)E2) 它使部分选择在笛卡尔积前先做,关系代数等价变换规则(续),7. 选择与并的交换 假设:E=E1E2,E1,E2有相同的属性名 F(E1E2) F(E1) F(E2) 8. 选择与差运算的交换 假设:E1与E2有相同的属性名 F(E1-E2) F(E1) - F(E2),关系代数等价变换规则(续),9. 投影与笛卡尔积的交换 假设:E1和E2是两个关系表达式, L1是E1的属性, L2是E2的属性 L1, L2 (E1E2) L1 (E1) L2 (E2),关系代数等价变换规则(续),l0. 投影与并的交换 假设:E1和E2 有相同的属性名 L(E1E2)L(E1) L(E2)

15、,4.2 关系系统的查询优化,4.2.1 查询优化概述 4.2.2 查询优化的必要性 4.2.3 查询优化的一般准则 4.2.4 优化的策略:等价变换 4.2.5 关系代数表达式的优化算法 4.2.6 优化的一般步骤,4.2.5 关系代数表达式的优化算法,算法:关系表达式的优化 输入:一个关系表达式的语法树。 输出:计算该表达式的程序。 方法: (1)分解选择运算 利用规则4(选择的串接)把形如F1 F2 Fn (E)变换为 F1 (F2( (Fn(E) ),关系代数表达式的优化算法 (续),(2)通过交换选择运算,将其尽可能移到树的叶端 (3)通过交换投影运算,将其尽可能移到叶端,关系代数表

16、达式的优化算法 (续),(4)合并串接的选择和投影,以便能同时执行或在一次扫描中完成,关系代数表达式的优化算法 (续),(5)对内结点分组 每一双目运算(, ,-)和它所有的直接祖先为一组(这些直接祖先是,运算)。 如果其后代直到叶子全是单目运算,则也将它们并入该组,但当双目运算是笛卡尔积(),而且其后的选择不能与它结合为等值连接时除外。把这些单目运算单独分为一组。,关系代数表达式的优化算法 (续),(6)生成程序 生成一个程序,每组结点的计算是程序中的一步。 各步的顺序是任意的,只要保证任何一组的计算不会在它的后代组之前计算。,4.2 关系系统的查询优化,4.2.1 查询优化概述 4.2.2

17、 查询优化的必要性 4.2.3 查询优化的一般准则 4.2.4 优化的策略:等价变换 4.2.5 关系代数表达式的优化算法 4.2.6 优化的一般步骤,4.2.6 优化的一般步骤,1把查询转换成某种内部表示 2代数优化:把语法树转换成标准(优化)形式 3物理优化:选择低层的存取路径 4生成查询计划,选择代价最小的,优化的一般步骤 (续),(1)把查询转换成某种内部表示(语法树) 建立语法树的规则: 对一个关系表达式进行语法分析,将关系作为叶子节点,而对关系的操作作为非叶子节点。 例:求选修了课程号为2的学生姓名,(1)把查询转换成某种内部表示,(2)代数优化,利用优化算法把语法树转换成标准(优

18、化)形式,(2)代数优化,(2)代数优化,(3)物理优化:选择低层的存取路径,所谓选择低层存取路径,指的就是要充分利用数据库中已有的索引等信息。假如选择条件或连接条件所涉及的属性上有索引,那么利用该索引进行存取就可以节省很多时间,这也能提高查询的效率。,(3)物理优化:选择低层的存取路径,- 优化器查找数据字典获得当前数据库状态信息 选择字段上是否有索引 连接的两个表是否有序 连接字段上是否有索引 然后根据一定的优化规则选择存取路径 如本例中若SC表上建有Cno的索引,则应该利用这个索引,而不必顺序扫描SC表。,(4)生成查询计划,选择代价最小的,在作连接运算时,若两个表(设为R1,R2)均无

19、序,连接属性上也没有索引,则可以有下面几种查询计划: 对两个表作排序预处理 对R1在连接属性上建索引 对R2在连接属性上建索引 在R1,R2的连接属性上均建索引 对不同的查询计划计算代价,选择代价最小的一个。 在计算代价时主要考虑磁盘读写的I/O数,内存CPU处理时间在粗略计算时可不考虑。,第四章 关系系统及其查询优化,4.1 关系系统 4.2 关系系统的查询优化 4.3 小结,4.3 小结,关系系统 关系系统的定义 一个数据库管理系统可定义为关系系统,当且仅当它至少支持: 1 关系数据库(即关系数据结构) 2 支持选择、投影和(自然)连接运算, 且不要求用户定义任何物理存取路径,小结 (续),关系系统的分类 表式系统 (最小)关系系统 关系完备系统 全关系系统,小结 (续),关系系统的查询优化 代数优化:关系代数表达式的优化 关系代数等价变换规则 关系代数表达式的优化算法 物理优化:存取路径和低层操作算法的选择,作业,设有学生关系S(Sno,Sname,Sage,Ssex) 课程关系C(Cno,Cname,Tname) 学习关系SC(Sno,Cno,grade) 查询学习刘红老师课程的所有女同学的学号和姓名。要求画出语法树并优化。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1