我爱Aspx >> C#.Net >> ORACLE SQL性能优化系列(八)_数据库技巧
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
AS
TDESC 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
AS
ENAME 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往往牺牲了执行效率. 能够掌握上面的运用函数解决问题的方法在实际工作中是非常有意义的)
Ҷƪл˵?
ORACLE SQL性能优化系列(九)_数..[04-28]
ACCESS97关于数据库安全的几个问..[04-28]
怎样使MySQL安全以对抗解密高手_..[04-28]
Oracle8的不安全因素及几点说明_..[04-28]
关于SQL SERVER的一些安全问题_数..[04-28]
MySQL3.23.31之前版本的安全漏洞..[04-28]
数据库安全性策略(1)_数据库安全[04-28]
数据库安全性策略 (2)_数据库安全[04-28]
保护Access 2000数据库的安全_数..[04-28]
MySQL安全问题(匿名用户)的一点心..[04-28]
ORACLE SQL性能优化系列(九)_数..[04-28]
优化delphi5.0秘籍大曝光_Delphi..[04-28]
Delphi语言优化_Delphi教程[04-28]
基于中间件的查询优化模型_Delph..[04-28]
Windows优化大师注册机源码_Delp..[04-28]
代码优化分析一例_Delphi教程[04-28]
Deiphi编译优化导致的死循环_Del..[04-28]
Asp的安全管理(5)_ASP文摘[04-28]
Asp的安全管理(6)_ASP文摘[04-28]
Asp的安全管理(7)_ASP文摘[04-28]