最低要求 用CBO的最低要求是設置優化器模式為FRIST_ROWS或者ALL_ROWS(或CHOOSE)並為對象生成統計資料
然而
這並不能保證你的系統能工作到最佳狀態
參照第二部分(初始化參數)涉及初始化參數的信息
不管是否設置優化器模式
如果有以下情況之一
CBO將會自動調用:
用到提示
用到分區表
設置並行表
為什麼要移去RBO? Oracle
i第二版將是最後一個正式支持CBO的版本
Oracle推薦所有合作伙伴和客戶驗證使用CBO的應用程序
盡管RBO在Oracle
i(現在稱Oracle
G)仍然可用
但不受支持
作為每一個已發布的Oracle筆記中
RBO的存在妨礙了Oralce對查詢處理引擎的關鍵增強
它的移除將允許Oracle提高數據庫引擎查詢處理組件的性能和可靠性
目前
Oracle 對RBO的支持僅僅用以有限的錯誤修正並且Oracle對RBO沒有添加新的功能
為什麼移至CBO? CBO主要獲益如下
以後Oracle停止RBO環境的開發
隨後的Oracle數據庫將移除RBO
同CBO相比
RBO的訪問方法是有限數量的
所有新功能基於CBO
這些大多數新功能對於設置等等是重要的
簇索引表
位圖索引
基於函數的索引
反向索引
哈希連接
物化視圖
索引表
和並行查詢
星型連接等
媒介鏈接支持
一旦RBO不受支持
Oracle支持也不可用
CBO已經成熟
先前Oracle
中
RBO在某些場景勝過CBO
甚至CBO並不是如想像中完好
並且經常選擇糟糕的執行計劃
以後的發行版本中
CBO功能獲得了提升
現在對於新功能
它提供了對考慮收益的較好交互性
分布式和遠程查詢更加可靠
在RBO中
數據庫鏈接
從本地到遠程數據庫多於一個表的查詢調整相當困難
同樣的工作
CBO勝過了RBO
本地優化器知道遠程表的目前統計信息
並且對於執行計劃能做出更好的決定
RBO可能考慮遠程數據庫的索引
但是CBO有權利統計遠程數據庫索引的信息並對查詢計劃做出決定
From:http://tw.wingwit.com/Article/program/Oracle/201311/17133.html