- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 - 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
 - 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
 - 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
 - 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
 
                        查看更多
                        
                    
                第9章 关系查询处理和查询优化 9.1 关系数据库系统的查询处理  9.2 关系数据库系统的查询优化  9.3 代数优化 9.4 物理优化  9.5 小 结  9.1  关系数据库系统的查询处理 9.1.1  查询处理步骤 9.1.2  实现查询操作的算法示例  9.1.1  查询处理步骤 RDBMS查询处理分4个阶段: 1. 查询分析 2. 查询检查 3. 查询优化  4. 查询执行 1  查询分析 语句扫描、词法分析、语法检查和分析 符合SQL语法规则? 2  查询检查 根据数据字典对合法的查询语句进行语义检查。 属性、关系名存在否? 权限和完整性约束? SQL→关系代数表达式 用查询树、语法分析树表达关系代数表达式 数据库外部名称转换为内部表示 3  查询优化 选择一个高效的查询处理策略 查询优化分类 代数优化 物理优化 4 查询执行 根据优化器得到的执行策略生成查询计划 由代码生成器生成执行这个查询计划的代码  9.1  关系数据库系统的查询处理 9.1.1  查询处理步骤 9.1.2  实现查询操作的算法示例  9.1.2  查询操作算法示例 一、选择操作的实现 【例1】Select * from student where 条件表达式  	考虑条件表达式的几种情况:       C1:无条件; 	 C2:Sno=200215121; 	 C3:Sage20; 	 C4:Sdept=CS AND Sage20  简单的全表扫描方法  索引(或散列)扫描方法  选择操作典型实现方法: 简单的全表扫描方法  对表顺序扫描,逐一检查每个元组是否满足选择条件,把满足条件的元祖作为结果输出。  索引(或散列)扫描方法  选择条件中的属性上有索引(例如B+树索引或Hash索引)  通过索引先找到满足条件的元组主码或元组指针,再通过元组指针直接在基本表中找到元组  二、连接操作的实现 【例2】SELECT * FROM Student,SC 	WHERE Student.Sno=SC.Sno   嵌套循环方法(nested loop)  排序-合并方法(sort-merge join 或merge join) 索引连接(index join)方法  Hash Join方法  第9章 关系查询处理和查询优化 9.1 关系数据库系统的查询处理  9.2 关系数据库系统的查询优化  9.3 代数优化 9.4 物理优化  9.5 小 结  9.2  关系数据库系统的查询优化 必要性 查询优化在关系数据库系统中有着非常重要的地位  关系查询优化是影响RDBMS性能的关键因素  可行性 由于关系表达式的语义级别很高,使关系系统可以从关系表达式中分析查询语义,提供了执行查询优化的可能性   查询优化的优点 用户不必考虑How To Do 系统可以比用户做得更好(更“优化”)  1)优化器可以从数据字典中获取许多统计信息,而用户程序则难以获得这些信息 2)如果数据库的物理统计信息改变了,系统可以自动对查询重新优化以选择相适应的执行计划。  3)优化器可以考虑数百种不同的执行计划,程序员一般只能考虑有限的几种可能性。 4)优化器中包括了很多复杂的优化技术,这些优化技术往往只有最好的程序员才能掌握。系统的自动优化相当于使得所有人都拥有这些优化技术 代价模型 集中式数据库 磁盘存取块数(I/O代价)* 处理机时间(CPU代价) 查询的内存开销 (多用户情形) 分布式数据库 I/O代价+CPU代价+内存代价+通信代价 查询优化的总目标 选择有效的策略 求得给定关系表达式的值 使得查询代价最小(实际上是较小)   9.2  关系数据库系统的查询优化  【例3】求选修了2号课程的学生姓名。用SQL语言表达:           select  student.sname           from  student, SC           where student.sno = SC.sno  and                      SC.cno = ‘2’           假定数据库中有1000个学生记录,10000个选课记录,其中选2号课程的记录为50个。           系统可以用多种等价的关系代数表达式来完成这一查询(用S代表Student): Q1 = ?Sname(?S.sno=SC.sno ∧ SC.Cno =‘2’ (S×SC)) Q2 = ?Sname (?SC.Cno =‘2’ (S    SC)) Q3 = ?Sname (S      ?SC.Cno =‘2’ (SC))  我们仅以上述三种情况为代表,来作分析。      Q1: ?Sname(?S.sno=SC.sno ∧ SC.Cno =‘2’ (S×SC
                
原创力文档
                        

文档评论(0)