인덱스 힌트를 선언할때... 0 2 2,510

by 꾼이되자 [2012.02.17 11:25:34]


제가 알고 있는 인덱스 힌트는...

/*+ index( [테이블이름 또는 테이블에 Alias를 주었다면 Alias명]  [인덱스이름] ) */

이렇게 알고 있었는데요..
책을 보다보니까

 /*+ index ( [테이블이름 또는 테이블에 Alias를 주었다면 Alias명] ) */

이렇게만 하고 끝냈던데요
제가 알기에는 반드시 인덱스 이름을 써야 하는걸로 알고 있는데요..
잘못알았던가 아님 버전이 높아지면서 이렇게만 써도 되는건가?? 아님 오타인가?? 라는 혼란에 빠졌습니다.
도와주세요~ 어떤것이 정답일까요??
하나 의심되는것은 다른 인덱스는 만들어져 있지 않고
constraint 로 PK만 선언한 예제 인거 같기도 하고요...
만약 테이블에 아무런 인덱스가 없고 PK만 선언하게 되면 위와 같이 사용할수 있는건가?? 라는
생각도 듭니다.

고수님들 부탁드립니다.
감사합니다.
by 마농 [2012.02.17 12:33:07]
버전이 올라가면서 좀 더 유연성이 생겼지요.
- 테이블명(알리아스명)만 적어줘도 되고요
- 인덱스명 위치에 컬럼명만 적어줘도 됩니다.

by 꾼이되자 [2012.02.17 12:58:40]
아 그렇군요..
그럼 인덱스가 하나만 있을 땐 정확하게 타고자 하는 인덱스가 반영되겠지만
인덱스가 여러개 있을 땐 장담을 못하겠군요??
옵티마이져가 똑똑해서 올바른 인덱스를 거의 타겠지만요...
감사합니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입