oracle優化程序模式
優化程序模式
• 基於規則的:
– 使用 --- 套等級系統
– 語法驅動和數據字典驅動
• 基於成本的:
– 選擇成本最低的路徑
– 統計數據驅動
基於規則的優化
在基於規則的優化中通過檢查查詢服務器進程選擇它訪問數據的路徑該
優化程序有一整套對訪問路徑進行排序的規則有經驗的 Oracle 開發人員往往
十分了解這些規則並可據此優化他們的 SQL
基於規則的優化程序是通過語法實現的因爲它聯合使用語句語法與有關數據
結構的數據字典信息以確定將使用哪一個執行計劃支持該優化程序模式是
爲了與 Oracle 服務器的早期版本向後兼容
基於成本的優化
在基於成本的模式中優化程序檢查每個語句並識別所有可能的訪問數據路
徑然後它計算每個訪問路徑的資源成本並且選擇花費最低的一個成本核
算的主要依據是邏輯讀取數
設置優化程序模式
• 例程級別:
optimizer_mode =
{choose|rule|first_rows|all_rows}
• 會話級別:
alter session set optimizer_mode =
{choose|rule|first_rows|all_rows}
• 語句級別: 使用提示
會話級別上的 OPTIMIZER_MODE 選項
開發人員可以使用 ALTER SESSION 命令設置該選項
SQL> ALTER SESSION SET OPTIMIZER_MODE = value
注由於向後兼容性原因仍支持 ALTER SESSION 命令的
OPTIMIZER_GOAL 選項以之作爲 OPTIMIZER_MODE 選項的替代
優化程序提示
也可以在 SQL 語句中使用提示來影響優化程序
可以在語句中編寫提示代碼如下所示
SQL> SELECT /*+ FIRST_ROWS */
2 *
3 FROM scott.emp;
能夠影響優化程序模式的優化程序提示爲 RULE FIRST_ROWS 和
ALL_ROWS
注所有可用提示的列表請參閱 Oracle8i Server Tuning, Release 8.1 手冊
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.