




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第九章 关系查询处理及其查询优化章节9.1 关系数据库系统的查询处理9.2 关系数据库系统的查询优化9.3 代数优化9.4 物理优化课型新授课课时2节课班级2002级1、2班教学目标重点掌握关系系统的查询优化。教学重点难点1. 重点掌握关系系统的查询优化。2. 画出查询的语法树和优化后的语法树。3. 优化算法,包括代数优化算法和物理优化算法。教学关键理解查询处理的过程了解查询优化的方法教学方法讲解和课件演示教具计算机大屏幕投影复习内容引入内容讲解内容9.1 关系数据库系统的查询处理9.1.1 查询处理步骤1查询分析2查询检查3查询优化4查询执行9.1.2 实现查询操作的算法示例一、选择操作的实
2、现1简单的全表扫描方法2索引(或散列)扫描方法二、连接操作的实现1循环嵌套方法2排序-合并方法3索引连接方法4Hash 连接方法9.2 关系数据库系统的查询优化9.2.1 查询优化概述n 系统选择不同的策略对查询时间影响很大。n 因此有必要对查询优化n 查询优化:为查询选择最有效的查询计划。n 查询优化极大地影响RDBMS的性能。n 查询优化的可能性n 关系数据语言的级别很高,使DBMS 可以从关系表达式 中分析查询语义。 1.由DBMS进行查询优化的好处n 用户不必考虑如何最好地表达查询以获得较好的效率n 系统可以比用户程序的优化做得更好(1) 优化器可以从数据字典中获取许多统计信息,而用户
3、程序则难以获得这些信息 (2)如果数据库的物理统计信息改变了,系统可以自动对查询重新优化以选择相适应的执行计划。 在非关系系统中必须重写程序,而重写程序在实际应用中往往是不太可能的。(3)优化器可以考虑数百种不同的执行计划,而程序员一般只能考虑有限的几种可能性。(4)优化器中包括了很多复杂的优化技术2.查询优化目标n 查询优化的总目标 选择有效策略,求得给定关系表达式的值3.实际系统的查询优化步骤(1) 将查询转换成某种内部表示,通常是语法树(2)根据一定的等价变换规则把语法树转换成标准(优化)形式(3)选择低层的操作算法n 对于语法树中的每一个操作n 计算各种执行算法的执行代价n 选择代价小
4、的执行算法(4)生成查询计划(查询执行方案)n 查询计划是由一系列内部操作组成的。9.代价模型n 一般DBMS采用基于代价的优化算法:n 集中式数据库n 单用户系统总代价 = I/O代价 + CPU代价n 多用户系统总代价 = I/O代价 + CPU代价 + 内存代价n 分布式数据库 总代价 = I/O代价 + CPU代价+ 内存代价 + 通信代价 9.2.2 一个实例 例:求选修了2号课程的学生姓名 SELECT Student.SnameFROM Student, SCWHERE Student.Sno=SC.Sno AND SC.Cno='2' 1 name(S
5、tudent.Sno=SC.Sno SC.Cno='2' (Student×SC) 2 name(SC.Cno=' 2' (Student SC)3 Sname(Student SC.Cno= 2 (SC) 三种不同的执行策略,查询时间差别很大。假设1:外存:Student:1000条,SC:10000条, 选修2号课程:50条假设2:一个内存块装元组:10个Student, 或100个SC, 内存中一次可以存放: 5块Student元组, 1块SC元组和若干块连接结果元组假设3:读写速度:20块/秒假设4:连接方法:基于数据块的嵌套循环法
6、。 执行策略1Q1 name (Student.Sno=SC.SnoSC.Cno='2' (Student×SC) 计算笛卡尔积Student×SC 读取总块数= 读Student表块数 + 读SC表遍数*每遍块数 =1000/10+(1000/(10×5) ×(10000/100) =100+20×100=2100 读数据时间=2100/20=105秒中间结果大小 = 1000*10000 = 107 (1千万条元组)写中间结果时间 = 10000000/10/20 = 50000秒 做选择运算
7、读数据时间 = 50000秒 做投影运算 总时间 =1055000050000秒 = 100105秒= 27.8小时执行策略22. 2 name(SC.Cno=' 2' (Student SC)计算自然连接读取总块数= 2100块读数据时间=2100/20=105秒中间结果大小=10000 (减少1000倍)写中间结果时间=10000/10/20=50秒 执行选择运算读数据时间=50秒 执行投影 总时间1055050秒205秒=3.4分 执行策略33. 2 Sname(StudentSC.Cno=' 2' (S
8、C) 读SC表总块数= 10000/100=100块读数据时间=100/20=5秒 中间结果大小=50条 不必写入外存 连接运算读Student表总块数= 1000/10=100块读数据时间=100/20=5秒 投影 总时间55秒10秒 执行策略49. 2 name(Student SC.Cno='2' (SC)假设SC表在Cno上有索引,Student表在Sno上有索引 读SC表索引Cno=2的元组。读SC表总块数= 50/100<1块读数据时间更小。中间结果大小=50条 不必写入外存 读Student
9、表索引读Student表总块数= 50/10=5块读数据时间大大减少。 总时间<10秒9.3 代数优化9.3.1 关系代数等价变换规则 n 关系代数表达式等价n 指用相同的关系代替两个表达式中相应的关系所得到的结果是相同的n 两个关系表达式E1 和E2 是等价的,记为: E1E2 常用的等价变化规则有:1. 连接、笛卡尔积交换律E1× E2 E2×E1E1 E2E2 E1 E1 F E2E2 F E1 F为连接条件。2. 连接、笛卡尔积的结合律 (E1×E2) × E3 E1 × (E2×E3) (E1 E2) E3 E1 (E
10、2 E3) (E1 E2) E3 E1 (E2 E3) F F F F3. 投影的串接定律 A1,A2, L,An( B1,B2, L,Bm(E) A1,A2, L,An (E)假设:1)E是关系代数表达式2)Ai(i=1,2,n), Bj(j=l,2,m)是属性名3)A1, A2, , An构成Bl,B2,Bm的子集 9. 选择的串接定律 F1 ( F2(E) F1 F2(E)n 选择的串接律说明 选择条件可以合并 n 这样一次就可检查全部条件。 5. 选择与投影的交换律(1)假设: 选择条件F只涉及属性A1,An F (A1,A2, L,An(E) A1,A2, L,An(F(E)(2)假
11、设: F中有不属于A1, ,An的属性B1,Bm A1,A2, L,An ( F (E) A1,A2, L,An(F (A1,A2, L,An,B1,B2, L,Bm(E)6. 选择与笛卡尔积的交换律(1) 假设:F中涉及的属性都是E1中的属性 F (E1×E2)F (E1)×E2 (2) 假设:F=F1F2,并且F1只涉及E1中的属性, F2只涉及E2中的属性 则由上面的等价变换规则1,4,6可推出: F(E1×E2) F1(E1)×F2 (E2) (3) 假设: F=F1F2, F1只涉及E1中的属性, F2涉及E1和E2两者的属
12、性 F(E1×E2) F2(F1(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是两个关系表达式, A1,An是E1的属性, B1,Bm是E2的属性 A1,A2, ,An,B1,B2, ,Bm (E1×E2) A1,A2, ,An(E1)× B1,B2, ,Bm(E2)l0. 投影与并的交换假设:E1和E2 有相同
13、的属性名 A1,A2, ,An(E1E2) A1,A2, ,An(E1) A1,A2, ,An(E2)9.3.2 查询数的启发式优化典型的启发式规则有:1. 选择运算应尽可能先做 n 目的:减小中间关系2. 在执行连接操作前对关系适当进行预处理n (1)在连接属性上建立索引 n (2)按连接属性排序n Student SCn 索引连接方法的步骤:(1)在SC上建Sno索引;(2)对Student中的每一元组,由Sno的值通过SC的索引查找SC的元组; (3)把这些SC的元组与Student的元组连接起来。对Student和SC表只扫描一遍。n 用排序合并方法的步骤:(1)
14、先对Student表和SC表在Sno上排序;(2)取Student中的第1个Sno,依次扫描SC表中具有相同Sno的元组;把它们连接起来。(3)当扫描到Sno不相同的第1个SC的元组时,返回Student表扫描它的下一个元组,再扫描SC表中具有相同Sno的元组,把它们连接起来。直到Student表扫描完。这样,Student表和SC表也只扫描一遍。2.把投影运算和选择运算同时进行。 可以避免重复扫描关系。3. 把投影同其前或其后的双目运算结合起来,没有必为去掉某些字段而扫描一遍关系。4. 把某些选择同它前面要执行的笛卡尔积结合起来成为一个连接运算。 例:Student.Sno=SC.Sno (
15、Student×SC) Student SCn 连接特别是等值连接比笛卡尔积节省时间。5. 找出公共子表达式 重复出现的表达式,结果写到中间文件。关系代数表达式的优化算法 算法:关系表达式的优化输入:一个关系表达式的语法树。输出:计算该表达式的程序。方法:(1)分解选择运算 利用规则4把形如F1 F2 Fn (E)变换为 F1 (F2( (Fn(E) ) (2)通过交换选择运算,将其尽可能移到叶端 对每一个选择,利用规则48尽可能把它移到树的叶端。(3)通过交换投影运算,将其尽可能移到叶端对每一个投影利用规则3,9,l0,5中的一般形式尽可能把它移向树的叶端。 (4)合并串接的选择和
16、投影,以便能同时执行或在一次扫描中完成n 利用规则3 5 把选择和投影的串接合并成单个选择、单个投影或一个选择后跟一个投影。 n 使多个选择或投影能同时执行,或在一次扫描中全部完成 n 尽管这种变换似乎违背“ 投影尽可能早做” 的原则,但这样做效率更高。 (5)对内结点分组n 把上述得到的语法树的内节点分组。 n 每一双目运算( × , , ,-) 和它所有的直接祖先为一组( 这些直接祖先是, 运算) 。 n 如果其后代直到叶子全是单目运算,则也将它们并入该组,但当双目运算是笛卡尔积( ×) ,而且其后的选择不能与它结合为等值连接时除外。把这些单目运算单独分为一组。 (6)生成程序n 生成一个程序,每组结点的计算是程序中的一步。 n 各步的顺序是任意的,只要保证任何一组的计算不会在它的后代组之前计算。 9.4 物理优化(3)物理优化:选择低层的存取路径- 优化器查找数据字典获得当前数据库状态信息 选择字段上是否有索引 连接的两个表是否有序 连接字段上是否有索引 然后根据一定的优
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年宽城满族自治县三年级数学第一学期期末统考试题含解析
- 2025-2026学年甘肃省张掖市肃南裕固族自治县数学三上期末考试模拟试题含解析
- 2025-2026学年噶尔县三年级数学第一学期期末检测试题含解析
- 2025-2026学年呈贡县三上数学期末达标测试试题含解析
- 2024年辽宁省鞍山市立山区三年级数学第一学期期末质量跟踪监视模拟试题含解析
- 2024年江苏省南通市实小集团共同体三年级数学第一学期期末考试试题含解析
- 行政管理专科语文应试试题及答案
- 2025年主管护师考试预测趋势试题及答案
- 行政管理专业经典文献试题及答案
- 曲艺与地方文化的融合试题及答案
- 2025年保密教育线上培训考试试题及答案
- 2025年海南会考试题及答案地理
- JJG 693-2011可燃气体检测报警器
- 中外政治思想史-形成性测试三-国开(HB)-参考资料
- 建设工程施工现场生活区设置和管理导则
- 实用美学第九讲饮食美学课件
- DBT29-295-2021 600MPa级高强钢筋混凝土结构技术标准
- 乳腺癌患者生命质量测定量表FACT
- ISO17025:2017检测和校准实验室能力的通用要求( 中英对照版)
- Q∕GDW 12157-2021 应急培训演练基地建设与评价规范
- 胃镜操作规范课件
评论
0/150
提交评论