ITPub博客

首页 > 数据库 > Oracle > oracle 的优化器

oracle 的优化器

原创 Oracle 作者:pxbibm 时间:2015-03-16 20:36:41 0 删除 编辑
oracle的优化是oracle数据库最核心的部分,它负责解析SQL语句。要想做好sql优化就必须了解优化器。为了让大家对Oracle数据库的优化器有个全局的了解和认识。我们今天简历的聊聊oracle的优化器。
oracle优化器分RBO(基于规则的优化器)和CBO(基于成本的优化器)两种类型。
优化器的目的是为了获取SQL的最优执行计划。
RBO(基于规则的优化器):oracle内置的一套规则。这个套规则是oracle硬编码在oracle数据库的代码中的。当SQL语句发给oracle服务器,oracle优化器从SQL语句很多执行路径中选择一条执行计划。
1.基于规则的优化器大致分为15个等级。等级1所对应的执行路径的执行效率最高。等级15所对应的执行路径的执行效率最低。
2.等级1所对应的执行路径就是通过ROWID来访问单行数据。
3.等级15所对用的执行路径是全表扫描。
4.在RBO的情况下,执行计划一旦出了问题,很难调整。
5.SQL语句中涉及的表在SQL语句中的先后顺序有可能影响RBO的执行计划。
6.可以通过等价改写SQL语句来调整RBO的执行计划。
CBO(基于成本的优化器):它是基于成本的。这些成本的判断信息来至于SQL语句涉及的表,索引,列等相关对象的统计信息计算出来的。从SQL   语句的执行路径中选择成本最小的条做为执行计划。
1.基于CBO   的优化器受对象 的实际数量,数据分布等情况的影响。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12798004/viewspace-1462004/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 工作记录2015.3.23
请登录后发表评论 登录
全部评论
【DBAplus社群】联合发起人。ACOUG核心成员,Oracle用户组年轻专家。熟悉Oracle的体系结构,擅长Oracle数据库架构规划、SQL优化、OWI方面性能的优化。曾服务于航天、航空、机车、大型制造行业数据库的维护以及系统开发工作,开发过基于Oracle数据库的大型ERP系统。
  • 博文量
    341
  • 访问量
    2469930