最近买了一本书叫做基于成本的优化,里面讲CBO和RBO。我是oracle初学者,不知道是什么用,也不只要优化器有什么用,哪位大虾能指点下,谢谢!!

解决方案 »

  1.   

    可是我一点也看不懂啊,能先告诉我CBO是什么东西吗?
      

  2.   

    不会哦。你看了吗?这本书的第一张就讲了优化器的定义。不过如果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+
      

  3.   

    通俗的说,RBO是个简单的规则,你写的SQL只要符合这个规则的话,SQL就会照制定的策略执行,但此策略并非是最快的
    CBO是基于成本的优化,会动态根据你的SQL,要取的数据量等制定最优方案来执行用个形象的比喻一个南北公路,五车道
    在初次投入时,预测是南向北车多,所以三车道,反方向,两车道运行了一段时候,发现车流方向不一样,怎么办,那化功夫变车道然后现过了段时候,发现其实每天每个时段的两个方向的车流不一样,那怎么办呢,发明一种自动变车道的,哪个方向车多,哪个方向的车道就多这个可以看RBO和CBO的来历,RBO就相当于初期制定的车道方案,CBO就相当后面的自动变车道
      

  4.   

    RBO就是基于规则的优化
    CBO是基于成本的优化我举个例子,很多人会认为一个查询走索引快,对吗?不完成对,70%-80%的语句走索引会快,但另外的就会慢,最常见的就是当你的数据量占总数据的百分比足够大时,反而会是全表扫描比索引快而基于RBO的,这时候会去走索引,而CBO不会
    另外RBO对书写等有一定要求,书写顺序不对,会造成效率降低
      

  5.   

    是分析SQL语句的一个工具,在运行一个SQL语句时,先去buffer找,如果没有找到,就要分析执行
    CBO是Oracle推荐使用的优化器
    不过Oracle本身很多产品仍然在使用RBO
    如果开发人员对SQL的优化把握很好,那么自己用hint来制定优化方式也是不错的.
      

  6.   

    对初学者而言,应该看一些基本的书籍,如Oracler的DML(insert,update,delete...),DDL(create,alter...)方面的知识,呵呵。
      

  7.   

    我用oracle做开发半年多了,主要是用DML和DDL,现在对DML和DDL应该还算是熟悉的吧。
    谢谢楼上,我现在就是想学深一点的东西,买了这本书,就想研究下他。我现在想先从分析执行计划入手,正在研究执行计划。呵呵···
      

  8.   

    RBO就是基于规则的优化 
    CBO是基于成本的优化 初学者最好把基础的东西先学好
      

  9.   

    我知道要学习基础的东西啊,可是大家都叫我学基础的东西,基础的东西是什么呢?
    除了DDL和DML还有什么?请告诉我一下,谢谢。
    说明:我觉得我的DDL和DML都还算过关的吧,因为我之前是用sql server 2000,有点基础,所以这半年学这个东西还是挺快的请告诉我我还要学习的基础是哪些???
    谢谢
      

  10.   

    在楼主的测试环境下,可以边看、边练、边体味。http://topic.csdn.net/u/20081107/12/572b3ce9-1560-42bf-bf47-6cc760b405ad.html