인덱스를 사용하지 않는 거 같습니다. -.- 0 1 2,477

by 손님 [SQL Query] 인덱스 함수 [2013.01.10 21:01:28]



초보 질문 드립니다.

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로 수행하면 쿼리 수행시간이 길어지는 이유를 모르겠습니다.

제가 뭘 잘못하고 있을까요?

가르침을 주십시오. ~


by 손님 [2013.01.10 21:03:19]

참고로.... AA.FUNC_RETURN_NAME 라는 함수는 내부적으로 AA.TAB_USER 라는 테이블을 사용해서
USER_NAME을 리턴합니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입