第6讲查询优化.ppt

  1. 1、本文档共72页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章 查询优化 思考几个问题 为什么数据库管理系统产品强调:一个查询中涉及的基本表的个数不要超过7个,最多不要超过10个? 一旦发现某个查询的效率很低,如何分析低效的原因?如何改进效率? 本 讲 主 要 目 标 学完本讲后,你应该能够了解: 基于代价的查询优化与启发式查询优化的区别与优劣; 启发式查询优化的目标; 启发式逻辑优化的一般准则; 关系代数等价变换规则是启发式逻辑优化的理论基础; 启发式逻辑优化算法的基本步骤; 多个表的连接顺序影响查询执行计划的效率 多连接查询的逻辑优化主要基于关系代数的等价变换规则 ---- 笛卡尔积的交换律和结合律 本 讲 主 要 目 标 基于规则的查询优化技术的三要素是:搜索空间、代价估计技术和搜索算法 多连接查询优化的常用搜索空间是左线性树、右线性树、浓密树 代价估计技术通常考虑I/O开销、存储开销、计算开销和通信开销四个要素,并且根据它们的重要程度加不同的权值 四类搜索算法 -- 穷尽、启发式、局部随机、全局随机法的特点 一. 启发式查询优化 二. 多连接查询优化 启发式 查询优化 启发式查询优化 精确查询优化方法面临的困境 导致QEP低效的原因 逻辑优化的一般准则 关系代数等价变换规则 关系代数表达式的优化算法 实例 启发式查询优化 精确查询优化方法面临的困境 策略空间随查询的复杂性程度成指数级增长 代价估计函数复杂,计算查询执行计划的代价需要大量的时间 为了计算查询执行计划的代价,需要保存大量的统计信息 ,而且这些统计信息需要随表的数据变化而更新。 启发式查询优化 精确查询优化方法面临的困境 启发式查询优化 导致QEP低效的原因 冗余计算 内外存交换次数太多 启发式查询优化 逻辑优化的一般准则 选择操作尽可能先做 目的:大大减少中间结果的大小 执行连接前对关系适当地预处理 两种预处理方法:在连接属性上建立索引和对关系排序 目的: 减少扫描表的次数 减少不相关元组的读取 实例 索引连接方法: (1)在SC上建立S#的索引; (2)对S中的每一个元组,由S#值通过SC的索引查找相应的SC元组; (3)把这些SC元组和S元组连接起来; 效率:S和SC表均只要扫描一遍。处理时间是两个关系大小的线性函数。 启发式查询优化 逻辑优化的一般准则 投影运算和选择运算同时进行 目的:避免重复扫描表 投影同其前或其后的双目运算结合起来 目的:避免重复扫描表 启发式查询优化 逻辑优化的一般准则 把某些选择同在它前面要执行的笛卡尔积结合起来成为一个连接运算 目的:减少内外存交换的信息量 找出公共子表达式 目的:减少计算量 启发式查询优化 关系代数等价变换规则 启发式查询优化 关系代数等价变换规则 启发式查询优化 关系代数等价变换规则 启发式查询优化 关系代数等价变换规则 例如:S ? SC ? C ① 表达式①中的∞代表自然连接,若利用交换律,交换SC和 C,就变换成 S ? C ? SC ② 表达式②利用结合率,就变换成 (S ? C) ? SC ③ 在表达式③中,关系S和C没有公共属性,所以不可能进行自然连接操作,即自然连接操作构成的关系代数表达式如果基于公式1和2进行变换,就会出现问题。 启发式查询优化 关系代数等价变换规则 投影的串接定律 ?A1,A2,…,An(?B1,B2,…,Bm (E)) ≡ ?A1,A2,…,An(E) 这里, E是关系代数表达式,Ai(i = 1,2, …,n),Bj(j = 1,2, …,m)是属性名,且{ A1,A2,…,An }构成{ B1,B2,…,Bm }的子集。 启发式查询优化 关系代数等价变换规则 选择的串接定律 ?F1(?F2(E)) ≡ ?F1∧F2(E) 启发式查询优化 关系代数等价变换规则 启发式查询优化 关系代数等价变换规则 启发式查询优化 关系代数等价变换规则 启发式查询优化 关系代数等价变换规则 启发式查询优化 关系代数等价变换规则 启发式查询优化 关系代数表达式的优化算法 常用的关系代数表达式的启发式方法 针对一棵语法树,有下列常用的启发式: ● 选择操作下移 ● 投影操作下移 ● 选择和投影的串接合并 ● 内结点分组 启发式查询优化 关系代数表达式的优化算法 关系代数表达式的优化算法 算法:关系表达式的优化 输入:一个表达式的语法树 输出:计算该表达式的程序 启发式查询优化 关系代数表达式的优化算法 方法: (1)?利用规则4进行选择条件分解 (2)对每一个选择,利用规

文档评论(0)

xina171127 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档