안녕하세요.. NOT EXISTS 관련 쿼리에서 너무 많은 지연시간을 갖는 쿼리부분이 있어 질문 올리겠습니다.
고수님들의 많은 도움 바라겠습니다.
다음은 문제의 쿼리입니다.
쿼리의 목적은 감지데이터에서 처리데이터를 걸러낸 건수 즉, 감지미처리 건수를 구하고자 하는 것입니다.
----------------------------------------------------------------------------------------
SELECT COUNT(*) CNT
FROM TCSR_SENSING t1
WHERE PLID=’097’
AND KMDT BETWEEN ’20090602’ AND ’20090603’
AND KMBH LIKE ’%’||’%’
AND NOT EXISTS ( SELECT ’X’
FROM TCSR_HANDLE t2
WHERE t1.plid = t2.plid
AND t1.kmdt = t2.kmdt
AND t1.kmbh = t2.kmbh
AND t1.gjbh = t2.gjbh )
AND JJHJ=’0’;
----------------------------------------------------------------------------------------
TCSR_SENSING(감지테이블) 27만건 정도이고, TCSR_HANDLE(처리테이블) 26만여건 입니다.
컬럼설명 :
1) TCSR_SENSING :
PLID (영업소고유번호) PK, KMDT (근무날짜) PK, KMBH (근무번호) PK , GJBH(감지일련번호) PK,
JJHJ (전진후진) : 0 (전진), 1(후진)
2) TCSR_HANDLE :
PLID (영업소고유번호) PK, KMDT (근무날짜) PK, KMBH (근무번호) PK,
JJHJ (전진후진) : 0 (전진), 1(후진)
※ TCSR_HANDLE 테이블에서는 GJBH(감지일련번호)가 PK가 아닙니다.
(TCSR_HANDLE 테이블 내의 GJBH 컬럼은 UNIQUE한 형태이며 UNIQUE 키 또는 인덱스를 걸어둘까 했지만.. 해당 테이블에는 이미 너무 많은 인덱스가 걸려있어.. 오히려
속도지연이 예상되는바 인덱스가 아닌 다른 방안을 고민중입니다.)
많은 조언 부탁드리겠습니다.