본문 바로가기
SQL

사용자 정의 함수

by devdevdev 2022. 3. 23.
사용자 정의 함수는 아래와 같은 이유로 사용을 지양한다.

 

https://burning-dba.tistory.com/78

 

UDF(사용자 정의 함수)로 인한 성능저하 ①

게임회사에서 근무하다가 교육업체로 업종을 변경하면서, 쿼리에 대해서 많은 차이점이 보입니다. 물론 이곳(?)의 스타일 일수도 있지만, UDF를 상당히 많이 사용합니다. 게임회사에서는 UDF를 그

burning-dba.tistory.com

 

그러나 꼭 사용해야 한다면, 아래와 같이 사용하도록 하자.

SELECT DEPTNO
     , (SELECT GET_DNAME(E.DEPTNO) FROM DUAL) AS DNAME
  FROM EMP E
 WHERE SAL >= 2000

SELECT-LIST에 사용한 함수는 메인쿼리 결과 건수만큼 반복 수행되는데, 위와 같이 스칼라 서브쿼리를 덧씌우면 호출 횟수를 최소화할 수 있다. 캐싱 효과 때문이다.

캐싱은 쿼리 단위로 이루어진다. 쿼리를 시작할 때 PGA 메모리에 공간을 할당하고, 쿼리를 수행하면서 공간을 채워나가며, 쿼리를 마치는 순간 공간을 반환한다.

 

출처: 도서 <친절한 SQL 튜닝>

728x90

'SQL' 카테고리의 다른 글

소트 튜닝  (0) 2022.04.01
윈도우 함수  (0) 2022.03.27
옵티마이저의 쿼리 변환(Query Transformation)  (0) 2022.03.23
오라클 병렬처리  (0) 2022.03.19
SGA vs PGA  (0) 2022.03.17

댓글