- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
                        查看更多
                        
                    
                第四章  关系系统查询优化  一、由系统来优化的原因 优化器可以从数据字典中获取许多统计信息,优化器可以根据这些信息选择有效的执行计划,而用户程序则难以获得这些信息。 如果数据库的物理统计信息改变了,系统可以自动对查询进行重新优化以选择相适应的执行计划。在非关系系统中必须重写程序。  优化器可以考虑数百种不同的执行计划,而程序员一般只能考虑有限的几种可能性。 优化器中包括了很多复杂的优化技术,这些优化技术往往只有最好的程序员才能掌握。系统的自动优化相当于使得所有人都拥有这些优化技术。      注意:查询优化是由系统而非用户来做。  二、系统对查询优化的具体实现步骤  将查询转换成某种内部表示,通常是语法树。 根据一定的等价变换规则把语法树转换成标准(优化)形式。 选择低层的操作算法。 生成查询计划。 三、查询的执行开销 在集中式数据库中:  	总代价 = I/O代价 + CPU代价   在多用户环境下:  	总代价 = I/O代价 + CPU代价 + 内存代价 一个实例 例  求选修了2号课程的学生姓名。用SQL语言表达:      SELECT  Student.Sname     	   FROM  Student,SC     		WHERE  Student.Sno=SC.Sno                                 AND SC.Cno=2; 多种等价的查询: 一)、第一种情况     1.计算广义笛卡尔积              把Student和SC的每个元组连接起来的方法:在内存中尽可能多地装入某个表(如Student表)的若干块元组,留出一块存放另一个表(如SC表)的元组。然后把SC中的每个元组和Student中每个元组连接,连接后的元组装满一块后就写到中间文件上,再从SC中读入一块和内存中的Student元组连接,直到SC表处理完。这时再一次读入若干块Studene元组,读入一块SC元组,重复上述处理过程,直到把Student表处理完。                  设:内存分为6块,一块能装10个Student元组或100个SC元组或10个连接后的元组。库中有1000个学生记录,10000个选课记录,其中选修2号课程的选课记录为50个。           若每秒读写20块,则总计要花105s。     连接后的元组数为103×104 = 107。     设每块能装10个连接后的元组,则写出这些块要用106/20=5×104s。      2.作选择操作     依次读入连接后的元组,按照选择条件选取满足要求的记录。假定内存处理时间忽略。这一步读取中间文件花费的时间(同写中间文件一样)需5×104s。满足条件的元组假设仅50个,均可放在内存。          3.作投影         把第2步的结果在Sname上作投影输出,得到最终结果。  执行查询的总时间为   2×5×104 + 105 s ? 105 s 所有内存处理时间均忽略不计。  二)、第二种情况     1.计算自然连接           读取Student和SC表的策略不变,总的读取块数仍为2100块花费105s。           自然连接的结果为104个(库中有10000个选课记录)。写出这些元组需时间为104/10/20=50 s。      2.读取中间文件块,执行选择运算,需50 s。      3.把第2步结果投影输出。         总的执行时间     105+50+50 = 205 s 三)、第三种情况     1.先对SC表作选择运算,只需读一遍SC表,存取100块花费时间为5s,满足条件的元组仅50个,不必使用中间文件。      2.读取Student表,与内存中的SC元组作连接。也只需读一遍Student表共100块花费时间为5s。      3.把连接结果投影输出。       总的执行时间为    5+5=10 s              假如SC表在Cno上、Student表在Sno上有索引,读取两表的块数可大大减少。总的存取时间将进一步减少到数秒。      四)、有索引的情况     假如SC表的Cno字段上有索引,第l步就不必读取所有的SC元组而只需读取Cno=‘2’的那些元组(50个)。存取的索引块和SC中满足条件的数据块大约总共3~4块。若STUDENT表在Sno上也有索引,则第2步也不必读取所有的STUDENT元组,因为满足条件的SC记录仅50个,涉及最多50个STUDENT记录,因此读取STUDENT表的块数也可大大减少。总的存取时间将进一步减少到数秒。  四、查询优化的一般准则 l. 选择运算应尽可能先做。在优化策略中这是最重要、最基本的一条
                您可能关注的文档
- 数据库原理及应用(Access 2003)(第二版)陈光军电子教案 第5章.ppt
- 数据库原理及应用(Access 2003)(第二版)陈光军电子教案 第6章.ppt
- 数据库原理及应用(Access 2003)(第二版)陈光军电子教案 第7章.ppt
- 数据库原理及应用(Access 2003)(第二版)陈光军电子教案 第8章.ppt
- 数据库原理及应用(Access 2003)(第二版)陈光军电子教案 第9章.ppt
- 数据库原理及应用(Access 2003)(第二版)陈光军电子教案 第10章.ppt
- 数据库原理及应用(Access 2003)(第二版)陈光军电子教案 第11章.ppt
- 数据库原理及应用(Access 2003)(第二版)陈光军电子教案 第12章.ppt
- 数据库原理及应用(Access 2003)(第二版)陈光军电子教案 第13章.ppt
- 数据库原理及应用(Access 2003)陈光军电子教案 第1章.ppt
- 数据库原理与技术陆勤电子教案 第5章 关系数据库的规范化设计.ppt
- 数据库原理与技术陆勤电子教案 第6.1章 数据库的并发控制机制.ppt
- 数据库原理与技术陆勤电子教案 第6.2章 数据库安全性的实现.ppt
- 数据库原理与技术陆勤电子教案 第6.3章 数据库完整性控制.ppt
- 数据库原理与技术陆勤电子教案 第6.4章 数据库的恢复.ppt
- 数据库原理与技术陆勤电子教案 第7章 数据库应用系统设计.ppt
- 数据库原理与技术陆勤电子教案 第8章 数据库应用系统设计实验指导.doc
- 数据库原理与技术陆勤电子教案 第9章 SQL Server简单使用方法.ppt
- 数据库原理与开发 教学课件 作者 赵明砚 单世民 赵凤强 第1章.ppt
- 数据库原理与开发 教学课件 作者 赵明砚 单世民 赵凤强 第2章2.1.ppt
 原创力文档
原创力文档 
                        

文档评论(0)