같은 테이블에서 조인하는 문제입니다
SELECT /*+ INDEX (B IDX21_TR_TX_ON) */
A.ISS_CD A_ISSUER_CD
,B.ISS_CD B_ISSUER_CD
FROM TR_TX_ON A, TR_TX_ON B
WHERE A.ISS_CD = '00'
AND A.CARD = B.CARD
AND B.ISS_CD <> '00'
위의 쿼리를 보시면 아시겠지만
A,B 모두 같은 테이블입니다.
A,B 테이블에서 같은 카드번호로 쿼리를 한 다음
A 는 ISS_CD = 00인것 , B는 ISS_CD <> 00 이 아닌
자료를 추출하는 쿼리인테 B 테이블 즉 ISS_CD <> 00
자료는 약 5,000만건이 있고, A테이블은 약 몇천건 자료가
있습니다. 이테이블들은 모두 인덱스가 ISS_CD, CARD_NO로
잡혀져 있습니다. ISS_CD가 00 이 아닌 자료가 중복으로
B 테이블에 많이 존재하기 때문에 자료 중복이 많이 나오며
또한 쿼리 속도가 너무 늦습니다.
제가 궁금한건 쿼리 속도를 빠르게 하는 방법과 또한 A,B
카드번호가 일치하는 자료가 하나만 나왔으면 하는 바램입니다.
결과물이 이런식으로 나오겠죠
A_ISSUER_CD B_ISSUER_CD
-----------------------
00 21 ==> B_ISSUER_CD자료는의 코드값은 예를 들어 보임
이 쿼리의 튜닝을 부탁드립니다. |