Oracle 最佳化引數 optimizer_mode 介紹
Oracle 在執行SQL語句時,有兩種最佳化方法:即基於規則的RBO和基於代價的CBO。 在SQL執教的時候,到底採用何種最佳化方法,就由Oracle引數 optimizer_mode 來決定。
SQL> show parameter optimizer_mode
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
optimizer_mode string CHOOSE
optimizer_mode 引數值共有以下四個:
第一:CHOOSE
這個是Oracle的預設值。採用這個值時,Oracle即可以採用基於規則RBO,也可以採用基於代價的CBO,到底使用那個值,取決於當前SQL的被訪問的表中是不是有可以使用的統計資訊。
如果有多個被訪問的表,其中有一個或多個有統計資訊,那麼Oralce會對沒有統計資訊的表進行取樣統計(即不全部取樣),統計完成後,使用基於代價的最佳化方法CBO。
如果所有被訪問的表都沒有統計資訊,Oracle就會採用基於規則的最佳化方法RBO。
第二:ALL_ROWS
不管是不是有統計資訊,全部採用基於成本的最佳化方法CBO。
第三:FIRST_ROWS_n
不管是不是有統計資訊,全部採用基於成本的最佳化方法CBO,並以最快的速度,返回前N行記錄。
第四:FIRST_ROWS
使用成本和試探法相結合的方法,查詢一種可以最快返回前面少數行的方法;這個引數主要用於向後相容。
第五:RULE
這個引數正好和ALL_ROWS相反,不管是不是統計資訊,全部採用基於規則的最佳化方法。
如何更改 optimizer_mode 的引數呢?可以用以下的方法。
SQL> alter session set optimizer_mode='RULE';
會話已更改。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/90618/viewspace-671837/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 優化引數 optimizer_mode 介紹Oracle優化
- Optimizer_mode引數
- 引數OPTIMIZER_MODE
- Oracle 各版本引數/隱藏引數 介紹Oracle
- Oracle expdp impdp dump引數介紹Oracle
- Oracle控制優化器偏好--optimizer_mode引數Oracle優化
- ORACLE推導引數Derived Parameter介紹Oracle
- 【體系結構】Oracle引數介紹Oracle
- oracle 塊基本引數介紹(英文) (zt)Oracle
- Oracle sqlplus prelim 引數介紹OracleSQL
- Oracle 靜態引數與動態引數型別介紹Oracle型別
- docker 引數介紹Docker
- ORACLE初始化引數檔案介紹Oracle
- gcc 常用引數介紹GC
- HRMS Function 引數介紹Function
- oracle impdp network_link引數使用介紹Oracle
- MongoDB啟動引數介紹MongoDB
- PostgreSQLGUC引數級別介紹SQL
- margin引數簡單介紹
- margin 引數簡單介紹
- ipchains引數介紹(轉)AI
- oracle之 sqlplus prelim 引數介紹 ( 處理hang )OracleSQL
- eclipse 啟動引數介紹Eclipse
- 【儲存】megacli 常用引數介紹
- javascript bind()第一個引數以後引數介紹JavaScript
- mysql一些引數的介紹MySql
- 資料表建立引數介紹(一)
- 資料表建立引數介紹(二)
- 資料表建立引數介紹(三)
- 資料表建立引數介紹(四)
- 10g中的optimizer_mode引數的取值
- mysqldump中skip-tz-utc引數介紹MySql
- linux的vm相關引數介紹Linux
- 【DATAGUARD】Oracle21c Dataguard建立注意事項及主要引數介紹Oracle
- 最佳化ySQL系統變數詳細介紹SQL變數
- 龍芯1A處理器引數介紹
- java基礎(九) 可變引數列表介紹Java
- CoreImage濾鏡效果及API引數介紹(五)API