网站大量收购独家精品文档,联系QQ:2885784924

oracle数据库优化器探秘 - 崔华.pdf

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
oracle数据库优化器探秘 - 崔华

Oracle数据库优化器探秘 崔华(dbsnake) About Me • 中航信工程师 • Oracle ACE • ACOUG成员 什么是Oracle里的优化器 • 优化器(Optimizer)是Oracle数据库中内置的一个核心 子系统,你也可以把它理解成是Oracle数据库中的一个核 心模块或者一个核心功能组件,优化器的目的是按照一定 的判断原则来得到它认为目标SQL在当前情形下最高效的 执行路径(Access Path),也就是说优化器的目的就是 为了得到目标SQL的执行计划 • 依据选择执行计划时所用判断原则的不同,Oracle数据库 里的优化器又分为RBO和CBO这两种类型 Oracle数据库里SQL语句的执行过程 Oracle数据库里SQL语句的执行过程-解析 • 语法检查 • 语义检查 • 查找Shared Cursor 查找Shared Cursor的过程 Oracle数据库里SQL语句的执行过程-如果找 到了Shared Cursor,优化器就可以滚粗了 Oracle数据库里SQL语句的执行过程-如果找 不到Shared Cursor,优化器这才粉墨登场 RBO的缺陷 • 选择执行计划时没有考虑目标SQL中所涉及到的各个对象 的数据量、数据分布,只根据内置规则来决定执行计划— —一招鲜、吃遍天 • 执行计划一旦出了问题,我们很难对其做调整 • 目标SQL的写法、甚至是目标SQL中所涉及到的各个对象在 该SQL文本中出现的先后顺序和这些对象在数据字典缓存 中的缓存顺序都可能会影响RBO对于该SQL执行计划的选择 • Oracle数据库中很多很好的特性、功能均不能在RBO下使 用,因为它们均不被RBO所支持(例如哈希连接、函数索 引等) CBO的局限 • CBO会默认认为目标SQL语句where条件中出现的各个列之间 是独立的,是没有关联关系的 • CBO会假设所有的目标SQL都是单独执行、并且是互不干扰的 • CBO对直方图统计信息有诸多限制: -在Oracle 12c之前,Frequency类型的直方图所对应的Bucket 的数量不能超过254 -在Oracle数据库里,如果针对文本型的字段收集直方图统计 信息,则Oracle只会将该文本型字段的文本值的头32个byte给 取出来(实际上只取头15个byte)并将其转换成一个浮点数, 然后将该浮点数作为上述文本型字段的直方图统计信息存储在 数据字典里 • CBO在解析多表关联的目标SQL时,可能会漏选正确的执行计 划 CBO的优化方向 • 数据库的升级、统计信息的变更、CBO某些成本计算公式 的先天不足等因素都会导致目标SQL执行计划的变更—— 这通常需要DBA来手工调整执行计划 (手工调整执行计划 太麻烦了,常常是按下了葫芦起了瓢),我们希望Oracle 数据库能自适应的自动调整不理想的执行计划,而且最好 是一旦发现苗头不对,马上调整! • 自适应查询优化 • 突破现有限制、持续优化已有功能 Oracle 12c的自适应查询优化 Automatic Reoptimization 包括Statistics feedback 和Performance feedback 自适应执行计划之Adaptive Join Methods • 初始表连接方法还是和原先一样:取决于现有的统计信息 • 最后采用的表连接方法直到目标SQL执行过程中才会确定 • 执行计划中多了一个组件:Statistic collector,最后 采用的表连接方法依赖于目标SQL执行过程中statistics collector收集到的运行时统计信息 • 需要在一定程度上缓存目标S

文档评论(0)

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

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

1亿VIP精品文档

相关文档