database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 41237 게시물 읽기
No. 41237
유저정의함수를 사용하는 SQL의 성능에 대해서
작성자
선도리(nazzang2231)
작성일
2016-09-11 22:31
조회수
6,523

아래와 같이 유저정의 함수를 조건과 결과출력에 사용하는 SQL은 T_XXXXX테이블 건수에 따라서 성능차이가 많이 있다고 들었습니다.

유저정의 함수는 SQL문에 쓰면 좋지 않은 건가요?

부득이 써야 된다면 성능저하를 발생시키지 않는 방법은 없습니까?

예)

SELECT a.*, F_FUNCTIONUSERNM('XX')

    FROM T_XXXXX a

WHERE a.USERNM = F_FUNCTIONUSERNM('XX');

고수님들의 의견을 듣고 싶습니다.

이 글에 대한 댓글이 총 1건 있습니다.

사용자 함수는 결과 건수만큼 반복 수행됩니다.
스칼라서브쿼리의 결과 캐싱을 이용하여 함수 수행 결과를 재사용할 수 있습니다.
(SELECT f_functionusernm('XX') FROM dual)
단, 입력값이 중복이 많아야 재사용율이 높겠죠.
입력값이 유니크한 값이라면 전혀 효과가 없구요.
질문의 예시처럼 컬럼이 아닌 상수를 입력했다면? 효과 만점이겠죠.
가장 좋은 방법은 함수를 풀어내는 것입니다.
SQL을 수정하여 함수를 없애고 조인으로 대체한다던가.

마농(manon94)님이 2016-09-12 09:19에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
41241각 테이블의 최신 한건을 가져오는 방법이 궁금합니다.
fvoel
2016-09-17
7292
41239연속 데이터 중 일부분의 평균값을 산출하는 방법 문의드립니다. [1]
손정하
2016-09-12
6249
41238(질문)프로시져 호출시 성능 저하
이철우
2016-09-12
6331
41237유저정의함수를 사용하는 SQL의 성능에 대해서 [1]
선도리
2016-09-11
6523
41236토드, sql Developer 의 쿼리결과가 다른이유
최의심
2016-09-08
6358
41235쿼리 질문 드립니다. [2]
궁금이
2016-09-08
6376
41234스토어 프로시져의 파라메터 정보는 어디서 확인가능한가여? [2]
최종길
2016-09-07
6218
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.047초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다