CBO 基于成本的优化器 最近买了一本书叫做基于成本的优化,里面讲CBO和RBO。我是oracle初学者,不知道是什么用,也不只要优化器有什么用,哪位大虾能指点下,谢谢!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可是我一点也看不懂啊,能先告诉我CBO是什么东西吗? 不会哦。你看了吗?这本书的第一张就讲了优化器的定义。不过如果oracle基础比较薄弱的话,一上来就看这本书是不太合适。如果实在不懂的话,看看这吧:http://www.google.cn/search?hl=zh-CN&newwindow=1&q=oracle+cbo+rbo&btnG=Google+%E6%90%9C%E7%B4%A2&meta=&aq=1&oq=oracle+cbo+ 通俗的说,RBO是个简单的规则,你写的SQL只要符合这个规则的话,SQL就会照制定的策略执行,但此策略并非是最快的CBO是基于成本的优化,会动态根据你的SQL,要取的数据量等制定最优方案来执行用个形象的比喻一个南北公路,五车道在初次投入时,预测是南向北车多,所以三车道,反方向,两车道运行了一段时候,发现车流方向不一样,怎么办,那化功夫变车道然后现过了段时候,发现其实每天每个时段的两个方向的车流不一样,那怎么办呢,发明一种自动变车道的,哪个方向车多,哪个方向的车道就多这个可以看RBO和CBO的来历,RBO就相当于初期制定的车道方案,CBO就相当后面的自动变车道 RBO就是基于规则的优化CBO是基于成本的优化我举个例子,很多人会认为一个查询走索引快,对吗?不完成对,70%-80%的语句走索引会快,但另外的就会慢,最常见的就是当你的数据量占总数据的百分比足够大时,反而会是全表扫描比索引快而基于RBO的,这时候会去走索引,而CBO不会另外RBO对书写等有一定要求,书写顺序不对,会造成效率降低 是分析SQL语句的一个工具,在运行一个SQL语句时,先去buffer找,如果没有找到,就要分析执行CBO是Oracle推荐使用的优化器不过Oracle本身很多产品仍然在使用RBO如果开发人员对SQL的优化把握很好,那么自己用hint来制定优化方式也是不错的. 对初学者而言,应该看一些基本的书籍,如Oracler的DML(insert,update,delete...),DDL(create,alter...)方面的知识,呵呵。 我用oracle做开发半年多了,主要是用DML和DDL,现在对DML和DDL应该还算是熟悉的吧。谢谢楼上,我现在就是想学深一点的东西,买了这本书,就想研究下他。我现在想先从分析执行计划入手,正在研究执行计划。呵呵··· RBO就是基于规则的优化 CBO是基于成本的优化 初学者最好把基础的东西先学好 我知道要学习基础的东西啊,可是大家都叫我学基础的东西,基础的东西是什么呢?除了DDL和DML还有什么?请告诉我一下,谢谢。说明:我觉得我的DDL和DML都还算过关的吧,因为我之前是用sql server 2000,有点基础,所以这半年学这个东西还是挺快的请告诉我我还要学习的基础是哪些???谢谢 在楼主的测试环境下,可以边看、边练、边体味。http://topic.csdn.net/u/20081107/12/572b3ce9-1560-42bf-bf47-6cc760b405ad.html sql文件中调用存储过程问题 Oracle11g与win7的问题 Oracle如何快速查找第N条记录? 关于oracle 字段是blob的问题 谁会做这道题!挑战一下!貌似简单的查询。呵呵! 写SQL文时,怎么实现如果一个参数不存在,那么对应的检索条件就不执行? 在wince上做开发连接ORACLE数据库有什么好方法 急问!如何解决ORA-01034/ORA-27101? 选择何种方式连接到数据库? 一个关于编译PL/SQL代码的问题,紧急求救! PCTFREE和PCTUSED区别 hash join概念
如果实在不懂的话,看看这吧:
http://www.google.cn/search?hl=zh-CN&newwindow=1&q=oracle+cbo+rbo&btnG=Google+%E6%90%9C%E7%B4%A2&meta=&aq=1&oq=oracle+cbo+
CBO是基于成本的优化,会动态根据你的SQL,要取的数据量等制定最优方案来执行用个形象的比喻一个南北公路,五车道
在初次投入时,预测是南向北车多,所以三车道,反方向,两车道运行了一段时候,发现车流方向不一样,怎么办,那化功夫变车道然后现过了段时候,发现其实每天每个时段的两个方向的车流不一样,那怎么办呢,发明一种自动变车道的,哪个方向车多,哪个方向的车道就多这个可以看RBO和CBO的来历,RBO就相当于初期制定的车道方案,CBO就相当后面的自动变车道
CBO是基于成本的优化我举个例子,很多人会认为一个查询走索引快,对吗?不完成对,70%-80%的语句走索引会快,但另外的就会慢,最常见的就是当你的数据量占总数据的百分比足够大时,反而会是全表扫描比索引快而基于RBO的,这时候会去走索引,而CBO不会
另外RBO对书写等有一定要求,书写顺序不对,会造成效率降低
CBO是Oracle推荐使用的优化器
不过Oracle本身很多产品仍然在使用RBO
如果开发人员对SQL的优化把握很好,那么自己用hint来制定优化方式也是不错的.
谢谢楼上,我现在就是想学深一点的东西,买了这本书,就想研究下他。我现在想先从分析执行计划入手,正在研究执行计划。呵呵···
CBO是基于成本的优化 初学者最好把基础的东西先学好
除了DDL和DML还有什么?请告诉我一下,谢谢。
说明:我觉得我的DDL和DML都还算过关的吧,因为我之前是用sql server 2000,有点基础,所以这半年学这个东西还是挺快的请告诉我我还要学习的基础是哪些???
谢谢