关系数据库查询优化相关教材.ppt

关系数据库查询优化相关教材.ppt

ID:51519166

大小:258.00 KB

页数:80页

时间:2020-03-25

关系数据库查询优化相关教材.ppt_第1页
关系数据库查询优化相关教材.ppt_第2页
关系数据库查询优化相关教材.ppt_第3页
关系数据库查询优化相关教材.ppt_第4页
关系数据库查询优化相关教材.ppt_第5页
资源描述:

《关系数据库查询优化相关教材.ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库

1、第八章关系数据库查询优化学习内容8.1查询处理概述8.2基本运算实现举例8.3查询优化的选择执行8.4sql语句优化参考:B3第十二章学习目标了解查询处理的过程了解查询优化的步骤掌握关系代数等价变换规则了解启发式优化的方法8.1查询处理概述8.1.1查询处理的定义8.1.2查询处理的执行步骤8.1.3相关基本概念8.1.1查询处理的定义1.定义从数据库中提取数据的一系列活动2.包括的主要内容表达式转换执行3.输入、输出8.1.2查询处理的执行步骤语法分析与翻译优化执行语法分析与翻译关系代数表达式执行计划优化器查询语句执行引擎查询结果有关数据的统计值数据8

2、.1.3相关基本概念查询代价查询处理对各种资源的使用情况磁盘存取(简化为磁盘块传送数)CPU时间通信开销内存开销COSTCPU(PLAN)COSTI/O(PLAN)PLAN19.2CPUseconds103readsPLAN21.7CPUseconds890reads8.1.3相关基本概念(续)部分用于估计代价的目录信息有关关系的统计信息nr:关系R中的元组数目br:含有关系R的元组的块数目sr:关系R中一个元组的大小fr:关系R的块因子,即一个块中能存放的关系R的元组数若假定关系R的元组物理上存于同一文件中,则:br=nr/fr一个重要的影响因素:

3、主存中缓冲区的大小M最好的情形最坏的情形8.1.3相关基本概念(续)查询优化为关系代数表达式的计算选择最有效的查询计划的过程。查询执行计划用于计算一个查询的原语序列。执行原语加了“如何执行”注释的关系代数运算。查询优化的过程代数优化物理优化详细策略的选择优化器8.1.4查询优化概述例:求选修了2号课程的学生姓名SELECTStudent.SnameFROMStudent,SCWHEREStudent.Sno=SC.SnoANDSC.Cno='2';1查询优化的必要性(续)假设1:外存:Student:1000条,SC:10000条,选修2号课程:50条一

4、个硬盘块放10个student或者100个SC假设2:一次I/O交换元组:10个Student,或100个SC,内存中一次可以存放:5块Student元组(即50个Student),1块SC元组(即100个SC)和若干块连接结果元组假设3:读写速度:20块/秒假设4:连接方法:基于数据块的嵌套循环法8.1.4查询优化概述1查询优化的必要性(续)8.1.4查询优化概述1查询优化的必要性(续)几种不同的实现方法:1)Q1=ПSname(бStudent.Sno=SC.Sno∧SC.Cno='2'(Student×SC))2)Q2=ПSname(бSC.Cno

5、='2'(StudentSC))3)Q3=ПSname(StudentбSC.Cno='2'(SC))1Q1=ПSname(бStudent.Sno=SC.Sno∧SC.Cno='2'(Student×SC))①Student×SC读取总块数=读Student表块数+读SC表遍数*每遍块数(读SC表遍数=Student表的总元组数/在内存中的元组数)=1000/10+(1000/(10×5))×(10000/100)=100+20×100=2100读数据时间=2100/20=105秒1查询优化的必要性(续)8.1.4查询优化概述中间结果大小=1000*1

6、0000=107(1千万条元组)写中间结果时间=10000000/10/20=50000秒(设每块能装10个中间结果元组)②б读数据时间=50000秒③П总时间=105+50000+50000秒=100105秒=27.8小时8.1.4查询优化概述1查询优化的必要性(续)2.Q2=ПSname(бSC.Cno='2'(StudentSC))①读取总块数=2100块(Q1的结果)读数据时间=2100/20=105秒因为只有SC只有10000条元组,故等值连接的结果,即:中间结果大小=10000(减少1000倍)写中间结果时间=10000/10/20=50秒②

7、б读数据时间=50秒③П总时间=105+50+50秒=205秒=3.4分(减少了中间结果)8.1.4查询优化概述1查询优化的必要性(续)3.Q3=ПSname(StudentбSC.Cno='2'(SC))①б读SC表总块数=10000/100=100块读数据时间=100/20=5秒中间结果大小=50条不必写入外存②读Student表总块数=1000/10=100块读数据时间=100/20=5秒③П总时间=5+5秒=10秒(减少中间结果,且全部在内存)1查询优化的必要性(续)8.1.4查询优化概述8.Q4=ПSname(StudentбSC.Cno='2

8、'(SC))假设SC表在Cno上有索引,Student表在Sno上有索引①б读S

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。