- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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
您可能关注的文档
- lng}~ 基€i震长周期地震作用效应я析 - 地震工程与工程振动.pdf
- 利物浦大学工程学院 - lasers and laser engineering.pdf
- mapefloor i 900 马贝地坪i 900.pdf
- 半导体激光阵列光谱压窄及光束整形技术研究 - 激光与红外.pdf
- mabr简介 - 天津大学研究生e-learning平台.ppt
- soopat 用悬浮热解装置处理褐煤制备半焦、焦油和煤气的方法.pdf
- medinfo2017 招商手册-cn(pdf文件).pdf
- 生物信息学的发展历程 - ok.ppt
- 新型纺纱与纱线设计.ppt
- 第1章 微观经济学导论:原理与问题.ppt
文档评论(0)