ORACLE SQL效能優化(三)

2021-04-30 01:08:46 字數 607 閱讀 4802

8.使用decode函式來減少處理時間

使用decode函式可以避免重複掃瞄相同記錄或重複連線相同的表.

例如:select count(*),sum(sal) from emp where dept_no = 0020 and ename like 『smith%』;

select count(*),sum(sal) from emp where dept_no = 0030 and ename like 『smith%』;

你可以用decode函式高效地得到相同結果

select count(decode(dept_no,0020,』x』,null)) d0020_count, count(decode(dept_no,0030,』x』,null)) d0030_count,sum(decode(dept_no,0020,sal,null)) d0020_sal,

sum(decode(dept_no,0030,sal,null)) d0030_sal from emp where ename like 『smith%』;

類似的,decode函式也可以運用於group by 和order by子句中.

9. 整合簡單,無關聯的資料庫

ORACLE SQL效能優化三

17.使用表的別名 alias 當在sql語句中連線多個表時,請使用表的別名並把別名字首於每個column上.這樣一來,就可以減少解析的時間並減少那些由column歧義引起的語法錯誤.譯者注 column歧義指的是由於sql中不同的表具有相同的column名,當sql語句中出現這個column時,s...

ORACLE SQL效能優化系列(三)

4.選擇最有效率的表名順序 只在基於規則的優化器中有效 oracle的解析器按照從右到左的順序處理from子句中的表名,因此from子句中寫在最後的表 基礎表 driving table 將被最先處理.在from子句中包含多個表的情況下,你必須選擇記錄條數最少的表作為基礎表.當oracle處理多個表...

ORACLE SQL效能優化系列 三

8.使用 decode函式來減少處理時間 使用decode 函式可以避免重複掃瞄相同記錄或重複連線相同的表.例如 select count sum sal from empwhere dept no 0020 and ename like ith select count sum sal from ...