그룹바이가 있는 테이블 인덱스 힌드 먹히게 하는 방법 문의 0 3 3,573

by 천사표 [Oracle Tuning] 인덱스 힌트 [2012.02.16 13:06:35]



안녕하세요 ?
AIX Unix OS에
oracle 11g가 설치된 DBMS 서버에
클라이언트로 붙여서

조건절에 연월 = 값
그룹바이절에 코드1
을 주고

인덱스를 연월, 코드1 순으로 생성후
실행해보니 800미리초가 수행되었습니다.

플랜을 보았더니
제가 생성한 저 인덱스는 타지 않고
연월,거시기1, 거시기2, 거시기3..) 순으로 된
인덱스를 타더라고요

인덱스 강제 사용 힌드를 주어도
제가 생성한 인덱스는 타지 않고 거시기가 들어 있는 필드가 있는 인덱스만
타더라고요

예전에 강제로 인덱스 힌트주면 그것 타는 것 보았는데,
오라클에서 그동안 뭐가 바뀐것이 있나요 ?

SELECT Statement는 ALL_ROWS로 나오고 있고요

답변 부탁드립니다.

감사합니다.
by 마농 [2012.02.16 14:21:02]
인덱스 힌트를 적절하게 주셨다면 힌트를 타는게 정상인데요.
그렇지 않았다면? 여러가지 이유가 있을텐데...
정확한것은 실행쿼리 및 실행계획, 인덱스 구성정보 등등을 확인해야 알 수 있을듯 하네요.
위에 간략하게 적어주신 정보만으로는 유추하기 어렵습니다.

by 손님 [2012.02.16 15:34:16]
group by 처럼 그룹함수가 있다면 전체범위처리를 해서 속도가 느려지는것이 아닐까요? 인덱스를 제대로 탄다고 해도 대용량 데이터라면 마지막 row까지 읽고 코드1별로 그룹을 만들기 때문에 전체범위처리를 타서 늦어질꺼라는 생각이 드네요...

by 손님 [2012.07.02 13:56:00]

저도 윗 손님분처럼 생각하고 있었는데, 요즘 버전에는 group by도 인덱스를 탈수 있다고 알고 있습니다 ^^
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입