더북(TheBook)

02 | 함수 성능 향상

함수를 사용하는 이유는 자주 사용하는 기능을 함수로 만들어 놓고 다음에 필요할 때 해당 함수에 매개변수만 전달해 호출하면 되기 때문이다. 개발 편의성 측면에서 보면 함수는 사막의 오아시스처럼 유용한 기능이 틀림없다. 하지만 일반 프로그래밍 언어와 달리 오라클과 같은 DB에서는 함수 사용을 남발하면 성능이 심각하게 떨어진다. 도대체 어떻게 성능이 저하되는지는 예제를 통해 살펴 보자.

먼저 부서코드를 받아 부서명을 반환하는 함수를 만들어 보자.

입력

    CREATE OR REPLACE FUNCTION fn_get_depname_normal ( pv_dept_id VARCHAR2 )
         RETURN VARCHAR2
    IS
      vs_dep_name DEPARTMENTS.DEPARTMENT_NAME%TYPE;
    BEGIN

      SELECT department_name
        INTO vs_dep_name
        FROM DEPARTMENTS
       WHERE department_id = pv_dept_id;

      RETURN vs_dep_name;

    EXCEPTION WHEN OTHERS THEN
       RETURN '';
    END;

결과

    FUNCTION FN_GET_DEPNAME_NORMAL이(가) 컴파일되었습니다.
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.