A, B ,C 세개의 테이블
A.TREE = C.TREE
A.FLOWER = B.FLOWER 조인을 하고 있는 쿼리입니다
A테이블에는 두개의 조건문이 있어서 인덱스를 힌트를 써서 태울수 있는데
B,C 각각의 테이블에는 조건문을 사용할것이 없는데 인덱스를 어떻게 사용해야할까요?
TABLE FULL SCAN 이 안뜨게끔 인덱스를 사용하고 HASH JOIN말고 NESTED LOOP를 타게 하라 하셔서요... 머리가 터질것 같아요.... 도와주세요............
1. 인덱스는 빨리 찾기 위한 도구입니다.
- 검색조건에 해당하는 자료를 빨리 찾기 위해도 필요하고,
- 조인조건에 해당하는 자료를 빨리 찾기 위해도 필요하죠.
- A 테이블의 경우 검색용 인덱스는 필요하지만 조인용 인덱스는 불필요하죠
- D 테이블의 경우 조인용 인덱스 APPLE 이 필요하겠네요.
2. 인덱스가 유리한 경우
- 많은 자료 중에 극히 일부 자료를 검색할 때 유리합니다.
- 그 반대의 경우라면 오히려 불리합니다.
- 힌트를 안주면 유리한 쪽을 선택합니다. (풀스캔 선택)
- 힌트를 주면 억지로 인덱스를 타긴 하지만 더 불리해 지는 거죠.