아래와 같은 형태의 쿼리에 대해 어떻게 plan을 변경할 수 있을지 문의드립니다.
select max(c.plan_strt_dtm)
from table_01 f table_02 a,table_03 c
where f.info_doc_mngt_no = '102007017706' and f.rel_info_doc_mngt_no = a.info_doc_mngt_no
and a.info_doc_mngt_no = c.info_doc_mngt_no and c.proc_plan_id = 'PD05'
table_01 테이블의 PK는 info_doc_mng_tno, rel_info_doc_mngt_no 외에 2개의 컬럼이 존재합니다만 제 생각으론 이 index를 태우는게 더 빠를거 같습니다만..
현재는 table_03에 있는 plan_strt_dtm 인덱스를 아래와 같이 먼저 읽습니다. 아래 메시지는 index끝에서부터 원하는 데이터를 찾을때까지 읽는단거 같은데..
이건 좀 불필요해보여서요..어쩜 빨리 찾아낼수도 있겠지만..아닌거 같습니다.
이 plan을 talbe_01 부터 읽도록 driving table을 바꿔줄수 있는 방법이 있는지요??
STEP 1
The type of query is SELECT.
Evaluate Ungrouped MAXIMUM AGGREGATE.
FROM TABLE
table_03
c
Nested iteration.
Index : ix_ra032_02
Backward scan.
Positioning at index end.
Scanning only up to the first qualifying row.
Using I/O Size 4 Kbytes for index leaf pages.
With LRU Buffer Replacement Strategy for index leaf pages.
Using I/O Size 4 Kbytes for data pages.
With LRU Buffer Replacement Strategy for data pages. |