博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle优化器
阅读量:5821 次
发布时间:2019-06-18

本文共 599 字,大约阅读时间需要 1 分钟。

本文参照:https://www.cnblogs.com/Dreamer-1/p/6076440.html

读优化器之前建议先读: https://www.cnblogs.com/zhougongjin/p/10682257.html

Oracle中的优化器是SQL分析和执行的优化工具,它负责生成、制定SQL的执行计划。

Oracle的优化器有两种:

  • RBO(Rule-Based Optimization) 基于规则的优化器
  • CBO(Cost-Based Optimization) 基于代价的优化器

RBO:

RBO有严格的使用规则,只要按照这套规则去写SQL语句,无论数据表中的内容怎样,也不会影响到你的执行计划;

换句话说,RBO对数据“不敏感”,它要求SQL编写人员必须要了解各项细则;

RBO一直沿用至ORACLE 9i,从ORACLE 10g开始,RBO已经彻底被抛弃。

CBO:

CBO是一种比RBO更加合理、可靠的优化器,在ORACLE 10g中完全取代RBO;

CBO通过计算各种可能的执行计划的“代价”,即COST,从中选用COST最低的执行方案作为实际运行方案;

它依赖数据库对象的统计信息,统计信息的准确与否会影响CBO做出最优的选择,也就是对数据“敏感”。

转载于:https://www.cnblogs.com/zhougongjin/p/10711367.html

你可能感兴趣的文章
【原】IOS中KVO模式的解析与应用
查看>>
EntityFramework Core迁移时出现数据库已存在对象问题解决方案
查看>>
urb传输的代码分析【转】
查看>>
理解 QEMU/KVM 和 Ceph(3):存储卷挂接和设备名称
查看>>
一道算法题的一种O(n)解法
查看>>
ABP理论学习之NHibernate集成
查看>>
反射之动态创建对象
查看>>
隐马尔可夫模型学习小记——forward算法+viterbi算法+forward-backward算法(Baum-welch算法)...
查看>>
[MFC] CList
查看>>
[Android Pro] 完美Android Cursor使用例子(Android数据库操作)
查看>>
4 张 GIF 图帮助你理解二叉查找树
查看>>
c++中sizeof的分析
查看>>
线程间操作无效: 从不是创建控件的线程访问它的解决方法
查看>>
hdu 1236 排名
查看>>
【爆牙游记】黄山归来不看岳-日出。
查看>>
PHP面向对象深入研究之【继承】,减少代码重复
查看>>
WCF利用企业库Unity框架的IOC层次解耦
查看>>
RBAC权限管理
查看>>
SqlMembershipProvider中的PasswordFormat 属性
查看>>
[Spark][Python]Spark 访问 mysql , 生成 dataframe 的例子:
查看>>