ORACLE SQL效能優化系列 八

2021-04-25 00:51:25 字數 1202 閱讀 1575

16.       通過內部函式提高sql效率.

select h.empno,e.ename,h.hist_type,t.type_desc,count(*)

from history_type t,emp e,emp_history h

where h.empno = e.empno

and h.hist_type = t.hist_type

group by h.empno,e.ename,h.hist_type,t.type_desc;

通過呼叫下面的函式可以提高效率.

function lookup_hist_type(typ in number) return varchar2

astdesc varchar2(30);

cursor c1 is 

select type_desc

from history_type

where hist_type = typ;

begin

open c1;

fetch c1 into tdesc;

close c1;

return (nvl(tdesc,』?』));

end;

function lookup_emp(emp in number) return varchar2

asename varchar2(30);

cursor c1 is 

select ename

from emp

where empno=emp;

begin

open c1;

fetch c1 into ename;

close c1;

return (nvl(ename,』?』));

end;

select h.empno,lookup_emp(h.empno),

h.hist_type,lookup_hist_type(h.hist_type),count(*)

from emp_history h

group by h.empno , h.hist_type;

(譯者按: 經常在論壇中看到如 』能不能用乙個sql寫出….』 的貼子, 殊不知複雜的sql往往犧牲了執行效率. 能夠掌握上面的運用函式解決問題的方法在實際工作中是非常有意義的)

資料引用:http://www.knowsky.com/303146.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...