오라클 9i 이며, unique 인덱스는 복합인덱스 입니다.
쿼리는 SELECT /*+ INDEX(a XPK_index_h) */, ... From test a, ma1 b, ma2 c, ma3 d, ma4 e where ... and a.date between '20220630' and '20220630' and a.col1=1 and d.col1 in (1,2,3) and a.col2 in (1,2,3,4)
test 테이블 데이터 건수 = 약 23,000,000 건 (파티션 없습니다)
test a.XPK_index_h unique 인덱스의 컬럼 = col1, col2, col3, col4
갑자기 하기 현상 발생합니다.
1) where a.date between 'yyyymmdd' and 'yyyymmdd' and a.col1=1 : 조회 시 full scan 하는 것처럼 쿼리 시간 오래 걸려서 2분이상 되었을 때 강제 종료. 로그상 1시간 쿼리 수행 시간도 있었음.
2) where a.date between 'yyyymmdd' and 'yyyymmdd' and a.col1=1 and d.col1 in (1,2,3,4) : 인덱스 스캔. 1초 이내 쿼리 결과 리턴 -> 그 외 다른 조건문 추가 시에도 도일하게 1초 이내 쿼리 수행 됨.
3) where a.date between 'yyyymmdd' and 'yyyymmdd' and a.col1=1 : 힌트문 삭제 시 해당 인덱스 스캔. 1초 이내 쿼리 결과 리턴 -> 1번에서 select 절에 힌트문 삭제 하고 조회 시 1초 이내 쿼리 수행 됨.
갑자기 최근 15일 사이에 위와 같은 현상이 발생 시작 되었습니다. 1)번 3)번과 같이 힌트문 유무에 따라 쿼리 수행시간이 달라지는 현상에 대해 고수님들에게 조언을 듣고자 문의 올립니다. ㅠㅠ (고객사 난리네요 ...)
도움 부탁 드리겠습니다.
감사합니다.
테이블 여러개 JOIN 하시는데 혹시 테이블 JON 순서에 문제가 생기지 않았나 추측해봅니다.