초보 질문 드립니다.
AA.TAB_USER 라는 테이블에 USER_ID, USER_NAME 컬럼이 있습니다. (데이터는 500건 정도 되고, USER_ID에 UNIQUE 인덱스도 있습니다.)
AA.FUNC_RETURN_NAME 라는 함수는 파라미터로 USER_ID를 넘기면 USER_NAME을 리턴하는 함수입니다. (DETERMINISTIC 으로 선언한 함수 입니다.)
기존에 사용하던 SVC 라는 스키마에게 AA.TAB_USER 테이블에 대해 SELECT 권한을 주었습니다.
아울러 SVC 라는 스키마에게 AA.FUNC_RETURN_NAME 함수에 대해 EXECUTE 권한을 주었습니다.
쿼리에서 여러번 함수 호출되어도 쿼리 수행시간이 길어짐 없이 잘 실행됩니다. ^^
근데.... 두둥...
SVC2 라는 스키마를 생성했습니다. SVC 스키마가 가지고 있던 기본 권한(SYSTEM PRIV.)을 그대로 다 부여 했습니다.
SVC2 라는 스키마에게 AA.TAB_USER 테이블에 대해 SELECT 권한을 주었습니다.
아울러 SVC2 라는 스키마에게 AA.FUNC_RETURN_NAME 함수에 대해 EXECUTE 권한을 주었습니다.
오렌지나 토드에서 실행해보면 SVC 스키마에서는 잘 수행되던 쿼리가 15건씩 뚝뚝 끊어져서 나오는 게 보입니다. (FETCH ARRAY SIZE가 15건입니다.)
제가 볼 땐 인덱스를 사용하지 못하는 거 같은데... (제가 초보라 아직 실행 계획을 보지 못합니다. -.-)
SVC 권한을 SVC2에게 그대로 부여해도 SVC2로 수행하면 쿼리 수행시간이 길어지는 이유를 모르겠습니다.
제가 뭘 잘못하고 있을까요?
가르침을 주십시오. ~