오라클 index 힌트 쿼리에서 갑자기 쿼리 느려지는 현상 1

by 토수니 [SQL Query] [2022.07.05 13:06:30]


오라클 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)번과 같이 힌트문 유무에 따라 쿼리 수행시간이 달라지는 현상에 대해 고수님들에게 조언을 듣고자 문의 올립니다. ㅠㅠ (고객사 난리네요 ...)

도움 부탁 드리겠습니다.

감사합니다.

by 우리집아찌 [2022.07.05 13:19:18]

테이블 여러개 JOIN 하시는데 혹시 테이블 JON 순서에 문제가 생기지 않았나 추측해봅니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입