购买

¥30.0

加入VIP
  • 专属下载券
  • 上传内容扩展
  • 资料优先审核
  • 免费资料无限下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 数据库原理-第9章-查询优化

数据库原理-第9章-查询优化.ppt

数据库原理-第9章-查询优化

烟雨梦兮
2018-10-14 0人阅读 举报 0 0 0 暂无简介

简介:本文档为《数据库原理-第9章-查询优化ppt》,可适用于IT/计算机领域

数据库系统概论AnIntroductiontoDatabaseSystem第九章关系查询处理和查询优化AnIntroductiontoDatabaseSystem第九章关系系统及其查询优化关系数据库系统的查询处理关系数据库系统的查询优化代数优化物理优化小结AnIntroductiontoDatabaseSystem关系系统及其查询优化(续)本章目的:RDBMS的查询处理步骤查询优化的概念基本方法和技术查询优化分类:代数优化物理优化AnIntroductiontoDatabaseSystem关系数据库系统的查询处理查询处理步骤实现查询操作的算法示例AnIntroductiontoDatabaseSystem查询处理步骤RDBMS查询处理阶段:查询分析查询检查查询优化查询执行查询处理步骤AnIntroductiontoDatabaseSystem查询分析对查询语句进行扫描、词法分析和语法分析从查询语句中识别出语言符号进行语法检查和语法分析AnIntroductiontoDatabaseSystem查询检查)根据数据字典对合法的查询语句进行语义检查)根据数据字典中的用户权限和完整性约束定义对用户的存取权限进行检查)检查通过后把SQL查询语句转换成等价的关系代数表达式RDBMS一般都用查询树(语法分析树)来表示扩展的关系代数表达式AnIntroductiontoDatabaseSystem查询优化查询优化:选择一个高效执行的查询处理策略查询优化分类:代数优化:指关系代数表达式的优化物理优化:指存取路径和底层操作算法的选择查询优化方法选择的依据:基于规则(rulebased)基于代价(costbased)基于语义(semanticbased)AnIntroductiontoDatabaseSystem查询执行)依据优化器得到的执行策略生成查询计划)代码生成器(codegenerator)生成执行查询计划的代码AnIntroductiontoDatabaseSystem关系数据库系统的查询处理查询处理步骤实现查询操作的算法示例一、选择操作的实现二、连接操作的实现AnIntroductiontoDatabaseSystem一、选择操作的实现[例]Select*fromstudentwhere<条件表达式>考虑<条件表达式>的几种情况:C:无条件C:Sno=‘’(等值条件)C:Sage>(范围条件)C:Sdept=‘CS’ANDSage>(复合条件)AnIntroductiontoDatabaseSystem选择操作的实现(续)选择操作典型实现方法:简单的全表扫描方法对查询的基本表顺序扫描逐一检查每个元组是否满足选择条件把满足条件的元组作为结果输出适合小表不适合大表索引(或散列)扫描方法适合选择条件中的属性上有索引(例如B树索引或Hash索引)通过索引先找到满足条件的元组主码或元组指针再通过元组指针直接在查询的基本表中找到元组AnIntroductiontoDatabaseSystem选择操作的实现(续)[例C]以C为例Sno=‘’并且Sno上有索引(或Sno是散列码)使用索引(或散列)得到Sno为‘’元组的指针通过元组指针在student表中检索到该学生[例C]以C为例Sage>并且Sage上有B树索引使用B树索引找到Sage=的索引项以此为入口点在B树的顺序集上得到Sage>的所有元组指针通过这些元组指针到student表中检索到所有年龄大于的学生。AnIntroductiontoDatabaseSystemB树AnIntroductiontoDatabaseSystem选择操作的实现(续)[例C以C为例Sdept=‘CS’ANDSage>如果Sdept和Sage上都有索引:算法一:分别用上面两种方法分别找到Sdept=‘CS’的一组元组指针和Sage>的另一组元组指针求这组指针的交集到student表中检索得到计算机系年龄大于的学生算法二:找到Sdept=‘CS’的一组元组指针通过这些元组指针到student表中检索对得到的元组检查另一些选择条件(如Sage>)是否满足把满足条件的元组作为结果输出。AnIntroductiontoDatabaseSystem二、连接操作的实现连接操作是查询处理中最耗时的操作之一本节只讨论等值连接(或自然连接)最常用的实现算法[例]SELECT*FROMStudentSCWHEREStudentSno=SCSnoAnIntroductiontoDatabaseSystem连接操作的实现(续)嵌套循环方法(nestedloop)排序合并方法(sortmergejoin或mergejoin)索引连接(indexjoin)方法HashJoin方法AnIntroductiontoDatabaseSystem连接操作的实现(续)嵌套循环方法(nestedloop)对外层循环(Student)的每一个元组(s)检索内层循环(SC)中的每一个元组(sc)检查这两个元组在连接属性(sno)上是否相等如果满足连接条件则串接后作为结果输出直到外层循环表中的元组处理完为止AnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem连接操作的实现(续)排序合并方法(sortmergejoin或mergejoin)适合连接的诸表已经排好序的情况排序-合并连接方法的步骤:如果连接的表没有排好序先对Student表和SC表按连接属性Sno排序取Student表中第一个Sno依次扫描SC表中具有相同Sno的元组AnIntroductiontoDatabaseSystem连接操作的实现(续)AnIntroductiontoDatabaseSystem连接操作的实现(续)排序-合并连接方法的步骤(续):当扫描到Sno不相同的第一个SC元组时返回Student表扫描它的下一个元组再扫描SC表中具有相同Sno的元组把它们连接起来重复上述步骤直到Student表扫描完AnIntroductiontoDatabaseSystem连接操作的实现(续)Student表和SC表都只要扫描一遍如果个表原来无序执行时间要加上对两个表的排序时间对于个大表先排序后使用sortmergejoin方法执行连接总的时间一般仍会大大减少AnIntroductiontoDatabaseSystem连接操作的实现(续)索引连接(indexjoin)方法步骤:①在SC表上建立属性Sno的索引如果原来没有该索引②对Student中每一个元组由Sno值通过SC的索引查找相应的SC元组③把这些SC元组和Student元组连接起来循环执行②③直到Student表中的元组处理完为止AnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem连接操作的实现(续)HashJoin方法把连接属性作为hash码用同一个hash函数把R和S中的元组散列到同一个hash文件中步骤:划分阶段(partitioningphase):对包含较少元组的表(比如R)进行一遍处理把它的元组按hash函数分散到hash表的桶中试探阶段(probingphase):也称为连接阶段(joinphase)对另一个表(S)进行一遍处理把S的元组散列到适当的hash桶中把元组与桶中所有来自R并与之相匹配的元组连接起来AnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem连接操作的实现(续)上面hashjoin算法前提:假设两个表中较小的表在第一阶段后可以完全放入内存的hash桶中若不能放入可以使用分区方法。以上的算法思想可以推广到更加一般的多个表的连接算法上AnIntroductiontoDatabaseSystem第九章关系系统及其查询优化关系数据库系统的查询处理关系数据库系统的查询优化代数优化物理优化小结AnIntroductiontoDatabaseSystem关系数据库系统的查询优化重要性:查询优化在关系数据库系统中有着非常重要的地位关系查询优化是影响RDBMS性能的关键因素可能性:由于关系表达式的语义级别很高使关系系统可以从关系表达式中分析查询语义提供了执行查询优化的可能性AnIntroductiontoDatabaseSystem关系数据库系统的查询优化查询优化概述一个实例AnIntroductiontoDatabaseSystem查询优化概述关系系统的查询优化非关系系统AnIntroductiontoDatabaseSystem查询优化概述(续)查询优化的优点不仅在于用户不必考虑如何最好地表达查询以获得较好的效率而且在于系统可以比用户程序的“优化”做得更好()优化器可以从数据字典中获取许多统计信息而用户程序则难以获得这些信息()如果数据库的物理统计信息改变了系统可以自动对查询重新优化以选择相适应的执行计划。在非关系系统中必须重写程序而重写程序在实际应用中往往是不太可能的。AnIntroductiontoDatabaseSystem查询优化概述(续)()优化器可以考虑数百种不同的执行计划程序员一般只能考虑有限的几种可能性。()优化器中包括了很多复杂的优化技术这些优化技术往往只有最好的程序员才能掌握。系统的自动优化相当于使得所有人都拥有这些优化技术AnIntroductiontoDatabaseSystem查询优化概述(续)RDBMS通过某种代价模型计算出各种查询执行策略的执行代价然后选取代价最小的执行方案集中式数据库执行开销主要包括:磁盘存取块数(IO代价)处理机时间(CPU代价)查询的内存开销IO代价是最主要的分布式数据库总代价=IO代价CPU代价内存代价+通信代价AnIntroductiontoDatabaseSystem查询优化概述(续)查询优化的总目标:选择有效的策略求得给定关系表达式的值使得查询代价最小(实际上是较小)AnIntroductiontoDatabaseSystem一个实例例求选修了号课程的学生姓名。用SQL表达:SELECTStudentSnameFROMStudentSCWHEREStudentSno=SCSnoANDSCCno=‘’假定学生课程数据库中有个学生记录个选课记录其中选修号课程的选课记录为个(最后结果元组数)AnIntroductiontoDatabaseSystem一个实例(续)系统可以用多种等价的关系代数表达式来完成这一查询Q=πSname(σStudentSno=SCSno∧ScCno=''(Student×SC))Q=πSname(σScCno=''(StudentSC))Q=πSname(StudentσScCno=''(SC))SELECTStudentSnameFROMStudentSCWHEREStudentSno=SCSnoANDSCCno=‘’AnIntroductiontoDatabaseSystem一个实例(续)一、第一种情况Q=πSname(σStudentSno=SCSno∧ScCno=''(Student×SC))计算广义笛卡尔积把Student和SC的每个元组连接起来的做法:在内存中尽可能多地装入某个表(如Student表)的若干块留出一块存放另一个表(如SC表)的元组。把SC中的每个元组和Student中每个元组连接连接后的元组装满一块后就写到中间文件上从SC中读入一块和内存中的Student元组连接直到SC表处理完。再读入若干块Student元组读入一块SC元组重复上述处理过程直到把Student表处理完AnIntroductiontoDatabaseSystem一个实例(续)设一个块能装个Student元组或个SC元组在内存中存放块Student元组和块SC元组则读取总块数为+=×=块其中读Student表块。读SC表遍每遍块。若每秒读写块则总计要花s连接后的元组数为×=。设每块能装个元组则写出这些块要用=×sAnIntroductiontoDatabaseSystem一个实例(续)作选择操作依次读入连接后的元组按照选择条件选取满足要求的记录假定内存处理时间忽略。读取中间文件花费的时间(同写中间文件一样)需×s满足条件的元组假设仅个均可放在内存Q=πSname(σStudentSno=SCSno∧ScCno=''(Student×SC))AnIntroductiontoDatabaseSystem一个实例(续)作投影操作把第步的结果在Sname上作投影输出得到最终结果时间忽略不计。第一种情况下执行查询的总时间≈××≈s所有内存处理时间均忽略不计Q=πSname(σStudentSno=SCSno∧ScCno=''(Student×SC))AnIntroductiontoDatabaseSystem一个实例(续)二、第二种情况Q=πSname(σScCno=''(StudentSC))计算自然连接执行自然连接读取Student和SC表的策略不变总的读取块数仍为块花费s自然连接的结果比第一种情况大大减少为个写出这些元组时间为=s为第一种情况的千分之一读取中间文件块执行选择运算花费时间也为s。把第步结果投影输出(时间忽略不计)。第二种情况总的执行时间≈≈sAnIntroductiontoDatabaseSystem一个实例(续)三、第三种情况Q=πSname(StudentσScCno=''(SC))先对SC表作选择运算只需读一遍SC表存取块花费时间为s因为满足条件的元组仅个不必使用中间文件。读取Student表把读入的Student元组和内存中的SC元组作连接。也只需读一遍Student表共块花费时间为s。把连接结果投影输出第三种情况总的执行时间≈≈sAnIntroductiontoDatabaseSystem一个实例(续)假如SC表的Cno字段上有索引第一步就不必读取所有的SC元组而只需读取Cno=‘’的那些元组(个)存取的索引块和SC中满足条件的数据块大约总共~块若Student表在Sno上也有索引第二步也不必读取所有的Student元组因为满足条件的SC记录仅个涉及最多个Student记录读取Student表的块数也可大大减少总的存取时间将进一步减少到数秒AnIntroductiontoDatabaseSystem一个实例(续)把代数表达式Q变换为Q、Q即有选择和连接操作时先做选择操作这样参加连接的元组就可以大大减少这是代数优化在Q中SC表的选择操作算法有全表扫描和索引扫描种方法经过初步估算索引扫描方法较优对于Student和SC表的连接利用Student表上的索引采用indexjoin代价也较小这就是物理优化AnIntroductiontoDatabaseSystem第九章关系系统及其查询优化关系数据库系统的查询处理关系数据库系统的查询优化代数优化物理优化小结AnIntroductiontoDatabaseSystem代数优化关系代数表达式等价变换规则查询树的启发式优化AnIntroductiontoDatabaseSystem关系代数表达式等价变换规则代数优化策略:通过对关系代数表达式的等价变换来提高查询效率关系代数表达式的等价:指用相同的关系代替两个表达式中相应的关系所得到的结果是相同的两个关系表达式E和E是等价的可记为E≡EAnIntroductiontoDatabaseSystem关系代数表达式等价变换规则(续)常用的等价变换规则:连接、笛卡尔积交换律设E和E是关系代数表达式F是连接运算的条件则有E×E≡E×EEE≡EEEE≡EE连接、笛卡尔积的结合律设EEE是关系代数表达式F和F是连接运算的条件则有(E×E)×E≡E×(E×E)(EE)E≡E(EE)(EE)E≡E(EE)AnIntroductiontoDatabaseSystemFFFFFF关系代数表达式等价变换规则(续)投影的串接定律((E))≡(E)这里E是关系代数表达式Ai(i=…n)Bj(j=…m)是属性名且{AA…An}构成{BB…Bm}的子集。选择的串接定律((E))≡(E)这里E是关系代数表达式F、F是选择条件。选择的串接律说明选择条件可以合并。这样一次就可检查全部条件。AnIntroductiontoDatabaseSystem关系代数表达式等价变换规则(续)选择与投影操作的交换律σF((E))≡(σF(E))选择条件F只涉及属性A…An。若F中有不属于A…An的属性B…Bm则有更一般的规则:(σF(E))≡(σF((E)))AnIntroductiontoDatabaseSystem关系代数表达式等价变换规则(续)选择与笛卡尔积的交换律如果F中涉及的属性都是E中的属性则(E×E)≡(E)×E如果F=F∧F并且F只涉及E中的属性F只涉及E中的属性则由上面的等价变换规则可推出:(E×E)≡(E)×(E)若F只涉及E中的属性F涉及E和E两者的属性则仍有(E×E)≡((E)×E)它使部分选择在笛卡尔积前先做。AnIntroductiontoDatabaseSystem关系代数表达式等价变换规则(续)选择与并的分配律设E=E∪EEE有相同的属性名则σF(E∪E)≡σF(E)∪σF(E)选择与差运算的分配律若E与E有相同的属性名则σF(EE)≡σF(E)σF(E)选择对自然连接的分配律σF(EE)≡σF(E)σF(E)F只涉及E与E的公共属性AnIntroductiontoDatabaseSystem关系代数表达式等价变换规则(续)投影与笛卡尔积的分配律设E和E是两个关系表达式A…An是E的属性B…Bm是E的属性则(E×E)≡(E)×(E)投影与并的分配律设E和E有相同的属性名则(E∪E)≡(E)∪(E)AnIntroductiontoDatabaseSystem代数优化关系代数表达式等价变换规则查询树的启发式优化AnIntroductiontoDatabaseSystem查询树的启发式优化典型的启发式规则:选择运算应尽可能先做。在优化策略中这是最重要、最基本的一条把投影运算和选择运算同时进行如有若干投影和选择运算并且它们都对同一个关系操作则可以在扫描此关系的同时完成所有的这些运算以避免重复扫描关系AnIntroductiontoDatabaseSystem查询树的启发式优化(续)把投影同其前或其后的双目运算结合起来把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算找出公共子表达式如果这种重复出现的子表达式的结果不是很大的关系并且从外存中读入这个关系比计算该子表达式的时间少得多则先计算一次公共子表达式并把结果写入中间文件是合算的当查询的是视图时定义视图的表达式就是公共子表达式的情况AnIntroductiontoDatabaseSystem查询树的启发式优化(续)遵循这些启发式规则应用的等价变换公式来优化关系表达式的算法。算法:关系表达式的优化输入:一个关系表达式的查询树输出:优化的查询树方法:()利用等价变换规则把形如σF∧F∧…∧Fn(E)变换为σF(σF(…(σFn(E))…))。()对每一个选择利用等价变换规则~尽可能把它移到树的叶端。AnIntroductiontoDatabaseSystem查询树的启发式优化(续)()对每一个投影利用等价变换规则中的一般形式尽可能把它移向树的叶端。注意:等价变换规则使一些投影消失规则把一个投影分裂为两个其中一个有可能被移向树的叶端()利用等价变换规则~把选择和投影的串接合并成单个选择、单个投影或一个选择后跟一个投影。使多个选择或投影能同时执行或在一次扫描中全部完成AnIntroductiontoDatabaseSystem查询树的启发式优化(续)()把上述得到的语法树的内节点分组。每一双目运算(×∪)和它所有的直接祖先为一组(这些直接祖先是(σπ运算)。如果其后代直到叶子全是单目运算则也将它们并入该组但当双目运算是笛卡尔积(×)而且后面不是与它组成等值连接的选择时则不能把选择与这个双目运算组成同一组把这些单目运算单独分为一组AnIntroductiontoDatabaseSystem查询树的启发式优化(续)[例]下面给出[例]中SQL语句的代数优化示例。()把SQL语句转换成查询树如下图所示查询树AnIntroductiontoDatabaseSystem查询树的启发式优化(续)为了使用关系代数表达式的优化法假设内部表示是关系代数语法树则上面的查询树如下图所示。AnIntroductiontoDatabaseSystem查询树的启发式优化(续)()对查询树进行优化利用规则、把选择σSCCno=‘’移到叶端查询树便转换成下图所示的优化的查询树。这就是节中Q的查询树表示优化后的查询树AnIntroductiontoDatabaseSystem补充例题在S、Sc、C关系中检索女同学选修课程的课程名称和任课教师名。)试写出该查询的关系代数表达式)画出查询表达式的语法树)使用启发式优化算法对语法树进行优化并画出优化的语法树。AnIntroductiontoDatabaseSystem检索女同学选修课程的课程名称和任课教师名AnIntroductiontoDatabaseSystemSSCCAnIntroductiontoDatabaseSystem女同学选修课程的课程名和任课教师名SSCCAnIntroductiontoDatabaseSystem课堂练习在S、Sc、C关系中检索至少学习liu老师所授一门课程的女学生的学号和姓名。)试写出该查询的关系代数表达式)画出查询表达式的语法树)使用启发式优化算法对语法树进行优化并画出优化的语法树。AnIntroductiontoDatabaseSystem第九章关系系统及其查询优化关系数据库系统的查询处理关系数据库系统的查询优化代数优化物理优化小结AnIntroductiontoDatabaseSystem物理优化代数优化:代数优化改变查询语句中操作的次序和组合不涉及底层的存取路径对于一个查询语句有许多存取方案它们的执行效率不同仅仅进行代数优化是不够的物理优化就是要选择高效合理的操作算法或存取路径求得优化的查询计划AnIntroductiontoDatabaseSystem物理优化(续)选择的方法:基于规则的启发式优化基于代价估算的优化两者结合的优化方法AnIntroductiontoDatabaseSystem物理优化基于启发式规则的存取路径选择优化基于代价的优化AnIntroductiontoDatabaseSystem基于启发式规则的存取路径选择优化一、选择操作的启发式规则二、连接操作的启发式规则AnIntroductiontoDatabaseSystem基于启发式规则的存取路径选择优化(续)一、选择操作的启发式规则:对于小关系使用全表顺序扫描即使选择列上有索引对于大关系启发式规则有:对于选择条件是主码=值的查询查询结果最多是一个元组可以选择主码索引一般的RDBMS会自动建立主码索引。AnIntroductiontoDatabaseSystem基于启发式规则的存取路径选择优化(续)对于选择条件是非主属性=值的查询并且选择列上有索引要估算查询结果的元组数目如果比例较小(<)可以使用索引扫描方法否则还是使用全表顺序扫描AnIntroductiontoDatabaseSystem基于启发式规则的存取路径选择优化(续)对于选择条件是属性上的非等值查询或者范围查询并且选择列上有索引要估算查询结果的元组数目如果比例较小(<)可以使用索引扫描方法否则还是使用全表顺序扫描AnIntroductiontoDatabaseSystem基于启发式规则的存取路径选择优化(续)对于用AND连接的合取选择条件如果有涉及这些属性的组合索引优先采用组合索引扫描方法如果某些属性上有一般的索引则可以用[例C]中介绍的索引扫描方法否则使用全表顺序扫描。对于用OR连接的析取选择条件一般使用全表顺序扫描AnIntroductiontoDatabaseSystem基于启发式规则的存取路径选择优化(续)二、连接操作的启发式规则:如果个表都已经按照连接属性排序选用排序合并方法如果一个表在连接属性上有索引选用索引连接方法如果上面个规则都不适用其中一个表较小选用Hashjoin方法AnIntroductiontoDatabaseSystem基于启发式规则的存取路径选择优化(续)可以选用嵌套循环方法并选择其中较小的表确切地讲是占用的块数(b)较少的表作为外表(外循环的表)。理由:设连接表R与S分别占用的块数为Br与Bs连接操作使用的内存缓冲区块数为K分配K块给外表如果R为外表则嵌套循环法存取的块数为Br(Br(K))Bs显然应该选块数小的表作为外表AnIntroductiontoDatabaseSystem物理优化(续)基于启发式规则的存取路径选择优化基于代价的优化AnIntroductiontoDatabaseSystem基于代价的优化启发式规则优化是定性的选择适合解释执行的系统解释执行的系统优化开销包含在查询总开销之中编译执行的系统中查询优化和查询执行是分开的可以采用精细复杂一些的基于代价的优化方法AnIntroductiontoDatabaseSystem基于代价的优化(续)一、统计信息二、代价估算示例AnIntroductiontoDatabaseSystem基于代价的优化(续)一、统计信息基于代价的优化方法要计算各种操作算法的执行代价与数据库的状态密切相关数据字典中存储的优化器需要的统计信息:对每个基本表该表的元组总数(N)元组长度(l)占用的块数(B)占用的溢出块数(BO)AnIntroductiontoDatabaseSystem基于代价的优化(续)对基表的每个列该列不同值的个数(m)选择率(f)如果不同值的分布是均匀的f=m如果不同值的分布不均匀则每个值的选择率=具有该值的元组数N该列最大值该列最小值该列上是否已经建立了索引索引类型(B树索引、Hash索引、聚集索引)AnIntroductiontoDatabaseSystem基于代价的优化(续)对索引(如B树索引)索引的层数(L)不同索引值的个数索引的选择基数S(有S个元组具有某个索引值)索引的叶结点数(Y)AnIntroductiontoDatabaseSystem基于代价的优化(续)二、代价估算示例全表扫描算法的代价估算公式如果基本表大小为B块全表扫描算法的代价cost=B如果选择条件是码=值那么平均搜索代价cost=BAnIntroductiontoDatabaseSystem基于代价的优化(续)索引扫描算法的代价估算公式如果选择条件是码=值如[例C]则采用该表的主索引若为B树层数为L需要存取B树中从根结点到叶结点L块再加上基本表中该元组所在的那一块所以cost=L如果选择条件涉及非码属性如[例C]若为B树索引选择条件是相等比较S是索引的选择基数(有S个元组满足条件)最坏的情况下满足条件的元组可能会保存在不同的块上此时cost=LSAnIntroductiontoDatabaseSystem基于代价的优化(续)如果比较条件是>>=<<=操作假设有一半的元组满足条件就要存取一半的叶结点通过索引访问一半的表存储块cost=LYB如果可以获得更准确的选择基数可以进一步修正Y与BAnIntroductiontoDatabaseSystem基于代价的优化(续)嵌套循环连接算法的代价估算公式中已经讨论过了嵌套循环连接算法的代价cost=Br(Bs(K))*Br如果需要把连接结果写回磁盘cost=BrBs(K)Br(Frs*Nr*Ns)Mrs其中Frs为连接选择性(joinselectivity)表示连接结果元组数的比例Mrs是存放连接结果的块因子表示每块中可以存放的结果元组数目。AnIntroductiontoDatabaseSystem基于代价的优化(续)排序合并连接算法的代价估算公式如果连接表已经按照连接属性排好序则cost=BrBs(Frs*Nr*Ns)Mrs。如果必须对文件排序需要在代价函数中加上排序的代价对于包含B个块的文件排序的代价大约是(*B)(*B*logB)AnIntroductiontoDatabaseSystem第九章关系系统及其查询优化关系数据库系统的查询处理关系数据库系统的查询优化代数优化物理优化小结AnIntroductiontoDatabaseSystem小结查询处理是RDBMS的核心查询优化技术是查询处理的关键技术本章讲解的优化方法启发式代数优化基于规则的存取路径优化基于代价的优化本章的目的:希望读者掌握查询优化方法的概念和技术AnIntroductiontoDatabaseSystem小结(续)比较复杂的查询尤其是涉及连接和嵌套的查询不要把优化的任务全部放在RDBMS上应该找出RDBMS的优化规律以写出适合RDBMS自动优化的SQL语句对于RDBMS不能优化的查询需要重写查询语句进行手工调整以优化性能AnIntroductiontoDatabaseSystem下课了。。。休息一会儿。。。AnIntroductiontoDatabaseSystem

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

评分:

/96

¥30.0

立即购买

VIP

意见
反馈

免费
邮箱