ORACLE SQL效能優化系列(四)

2021-04-25 00:46:42 字數 716 閱讀 4201

5.where子句中的連線順序.

oracle採用自下而上的順序解析where子句,根據這個原理,表之間的連線必須寫在其他where條件之前, 那些可以過濾掉最大數量記錄的條件必須寫在where子句的末尾.

例如:(低效,執行時間156.3秒)

select …

from emp e

where  sal > 50000

and    job = 『manager』

and    25 < (select count(*) from emp

where mgr=e.empno);

(高效,執行時間10.6秒)

select …

from emp e

where 25 < (select count(*) from emp

where mgr=e.empno)

and    sal > 50000

and    job = 『manager』;

6.     select子句中避免使用 『 * 『

當你想在select子句中列出所有的column時,使用動態sql列引用 『*』 是乙個方便的方法.不幸的是,這是乙個非常低效的方法. 實際上,oracle在解析的過程中, 會將』*』 依次轉換成所有的列名, 這個工作是通過查詢資料字典完成的, 這意味著將耗費更多的時間.

資料引用:http://www.knowsky.com/303142.html

ORACLE SQL效能優化系列

1.選用適合的 oracle 優化器 oracle 的優化器共有3種 a.rule 基於規則 b.cost 基於成本 c.choose 選擇性 設定預設的優化器 可以通過對 init.ora 檔案中optimizer mode 引數的各種宣告,如 rule,cost,choose,all rows,...

ORACLE SQL效能優化系列

1.選用適合的oracle優化器 oracle的優化器共有3種 a.rule 基於規則 b.cost 基於成本 c.choose 選擇性 設定預設的優化器,可以通過對init.ora檔案中optimizer mode引數的各種宣告,如rule,cost,choose,all rows,first r...

Oracle SQL效能優化系列

1.選用適合的oracle優化器 oracle的優化器共有3種 a.rule 基於規則 b.cost 基於成本 c.choose 選擇性 設定預設的優化器,可以通過對init.ora檔案中optimizer mode引數的各種宣告,如rule,cost,choose,all rows,first r...