• 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几回捐躯了实施服从. 可以把握下面的运用函数治理标题的方法在现实任务中是特殊十分有心义的)




    版权声明: 原创作品,准许转载,转载时请务必以超链接方法标明文章 原始原因 、作者信息和本声明。不然将追究执法责任。

  • 相关阅读:
    osg编译日志
    MFC加载大型osg模型
    osg gdal加载tif数据文件
    osg创建灯光
    ubuntu挂载新硬盘
    MFC加载osg模型
    nginx中Geoip_module模块的使用
    centos中释放缓存的方法
    python连接kafka生产者,消费者脚本
    python初始化环境记录
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1976087.html
Copyright © 2020-2023  润新知