付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库系统概论 An Introduction to Database System中国人民大学信息学院第九章 关系查询处理 和查询优化第九章 关系查询处理和查询优化9.1 关系数据库系统的查询处理 9.2 关系数据库系统的查询优化 9.3 代数优化 9.4 物理优化 *9.5 查询计划的执行9.6 小 结 9.4 物理优化代数优化改变查询语句中操作的次序和组合,不涉及底层的存取路径对于一个查询语句有许多存取方案,它们的执行效率不同, 仅仅进行代数优化是不够的 物理优化就是要选择高效合理的操作算法或存取路径,求得优化的查询计划 物理优化(续)物理优化方法基于规则的启发式优化启发式规则是指那些在
2、大多数情况下都适用,但不是在每种情况下都是适用的规则。基于代价估算的优化优化器估算不同执行策略的代价,并选出具有最小代价的执行计划。物理优化(续)物理优化方法(续)两者结合的优化方法:常常先使用启发式规则,选取若干较优的候选方案,减少代价估算的工作量然后分别计算这些候选方案的执行代价,较快地选出最终的优化方案 9.4 物理优化9.4.1 基于启发式规则的存取路径选择优化9.4.2 基于代价的优化 9.4.1 基于启发式规则的存取路径选择优化1.选择操作的启发式规则 2.连接操作的启发式规则 基于启发式规则的存取路径选择优化(续)1.选择操作的启发式规则对于小关系,使用全表顺序扫描,即使选择列上
3、有索引 对于大关系,启发式规则有: (1)对于选择条件是“主码值”的查询查询结果最多是一个元组,可以选择主码索引一般的关系数据库管理系统会自动建立主码索引基于启发式规则的存取路径选择优化(续)(2)对于选择条件是“非主属性值”的查询,并且选择列上有索引要估算查询结果的元组数目如果比例较小(10%)可以使用索引扫描方法否则还是使用全表顺序扫描基于启发式规则的存取路径选择优化(续)(3)对于选择条件是属性上的非等值查询或者范围查询,并且选择列上有索引要估算查询结果的元组数目如果比例较小(10%)可以使用索引扫描方法否则还是使用全表顺序扫描 基于启发式规则的存取路径选择优化(续)(4)对于用AND连
4、接的合取选择条件如果有涉及这些属性的组合索引优先采用组合索引扫描方法如果某些属性上有一般的索引,可以用索引扫描方法通过分别查找满足每个条件的指针,求指针的交集通过索引查找满足部分条件的元组,然后在扫描这些元组时判断是否满足剩余条件其他情况:使用全表顺序扫描(5)对于用OR连接的析取选择条件,一般使用全表顺序扫描基于启发式规则的存取路径选择优化(续)2.连接操作的启发式规则 (1)如果2个表都已经按照连接属性排序选用排序-合并算法 (2)如果一个表在连接属性上有索引选用索引连接算法 (3)如果上面2个规则都不适用,其中一个表较小选用Hash join算法基于启发式规则的存取路径选择优化(续)(4
5、)可以选用嵌套循环方法,并选择其中较小的表,确切地讲是占用的块数(b)较少的表,作为外表(外循环的表) 。 理由:设连接表R与S分别占用的块数为Br与Bs连接操作使用的内存缓冲区块数为K分配K-1块给外表如果R为外表,则嵌套循环法存取的块数为Br+BrBs/(K-1)显然应该选块数小的表作为外表 9.4 物理优化9.4.1 基于启发式规则的存取路径选择优化9.4.2 基于代价的优化 9.4.2 基于代价的优化 启发式规则优化是定性的选择,适合解释执行的系统解释执行的系统,优化开销包含在查询总开销之中 编译执行的系统中查询优化和查询执行是分开的可以采用精细复杂一些的基于代价的优化方法 基于代价的
6、优化(续)1.统计信息 2.代价估算示例 3.优化方法基于代价的优化(续)1.统计信息基于代价的优化方法要计算查询的各种不同执行方案的执行代价,它与数据库的状态密切相关 优化器需要的统计信息 (1)对每个基本表该表的元组总数(N)元组长度(l)占用的块数(B)占用的溢出块数(BO)基于代价的优化(续)(2)对基表的每个列该列不同值的个数(m)列最大值最小值列上是否已经建立了索引哪种索引(B+树索引、Hash索引、聚集索引)可以计算选择率(f)如果不同值的分布是均匀的,f1/m如果不同值的分布不均匀,则要计算每个值的选择率,f具有该值的元组数/N基于代价的优化(续)(3)对索引索引的层数(L)不
7、同索引值的个数索引的选择基数S(有S个元组具有某个索引值)索引的叶结点数(Y) 基于代价的优化(续) 2.代价估算示例 (1)全表扫描算法的代价估算公式如果基本表大小为B块,全表扫描算法的代价 costB如果选择条件是“码值”,那么平均搜索代价 costB/2基于代价的优化(续)(2)索引扫描算法的代价估算公式如果选择条件是“码值”则采用该表的主索引若为B+树,层数为L,需要存取B+树中从根结点到叶结点L块,再加上基本表中该元组所在的那一块,所以cost=L+1基于代价的优化(续)(2)索引扫描算法的代价估算公式(续)如果选择条件涉及非码属性若为B+树索引,选择条件是相等比较,S是索引的选择基
8、数(有S个元组满足条件)满足条件的元组可能会保存在不同的块上,所以(最坏的情况)cost=L+S 基于代价的优化(续)(2)索引扫描算法的代价估算公式(续)如果比较条件是,操作假设有一半的元组满足条件就要存取一半的叶结点通过索引访问一半的表存储块cost=L+Y/2+B/2如果可以获得更准确的选择基数,可以进一步修正Y/2与B/2基于代价的优化(续)(3)嵌套循环连接算法的代价估算公式嵌套循环连接算法的代价 costBr+BrBs/(K-1)如果需要把连接结果写回磁盘 costBr+Br Bs/(K-1)+(Frs*Nr*Ns)/Mrs其中Frs为连接选择性(join selectivity),表示连接结果元组数的比例Mrs是存放连接结果的块因子,表示每块中可以存放的结果元组数目基于代价的优
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2022年西南民族大学汉语国际教育专业《现代汉语》期末试卷A(有答案)
- 管理学电子课件
- 广东省深圳市2026年七年级上学期期中调研数学试题附答案
- 剑麻纤维生产工技能安全模拟考核试卷含答案
- 高压成套设备装配配线工岗中沟通技巧考核试卷含答案
- 氯甲烷生产工岗中综合应用考核试卷含答案
- 消防设施操作员岗位综合技能考核试卷含答案
- 2025年职业技能鉴定考试(动物疫病防治员高级/三级)历年参考题库含答案详解
- 2025年质量知识问答题库及答案(可下载)
- 2025年中国注册心理咨询师考试模拟题集与答案
- 抗美援朝纪念日致敬英雄课件
- 2026年成都市金堂县增量政策性岗位招募(121人)笔试备考试题及答案详解
- 2026年交管12123科目一考试真题及详细答案解析
- 肾结石内科管理中国指南(2026版)
- 第四单元 第1课时 青蛙歌(教学设计)数学北师大版五年级上册2026秋
- 2026中国零碳产业园能源系统设计与投资回报分析报告
- 2026年保密教育线上培训考试试题(附完整答案)
- 老年综合评估试题及答案
- 生猪屠宰兽医卫生检验人员理论考试题库及答案
- -物理-湘豫名校联考2023-2024学年高三上学期9月一轮复习诊断考试(一)带答案
- 化学第二单元探秘水世界复习课件省公开课金奖全国赛课一等奖微课获奖课件
评论
0/150
提交评论