조인 조건 부분에서 데이터를 느리게 가져옵니다 0 0 2,658

by DB오랜만 [2024.07.08 12:07:30]


ATABLE의 TIME 보다 낮은 것 중에서 가장 최신의 TIME을 가져온 후에
최신의 TIME이 BTABLE에도 같은 TIME이 있으면 데이터를 가져와서 B의 DESC를 가져오려고합니다.

AND C.TIME < A.TIME에서 A.TIME을 가져오는 부분에서 시간이 오래걸립니다.

A테이블 50건 C테이블 20만건 기준 3초 정도 나오네요

B테이블에서 시간은 중복되지않습니다.

AND C.TIME < A.TIME만 빼거나 AND C.TIME < '20240708' 이런식으로 바꿔주면 바로 조회되는 상황입니다.

원인과 해결 방안이 있을까요??

WITH ATABLE(

SELECT MIN(C.TIME) AS TIME, A.약 10개 FROM AAAAATABLE A

LEFT JOIN CTABLE C

ON A.ID = C.ID

GROUP BY A.약 10개

),

SELECT A.CODE, B.DESC FROM ATABLE A
LEFT JOIN BTABLE B
ON A.CODE =B.CODE
AND B.TIME = (SELECT MAX(TIME) FROM CTABLE C
               WHERE C.CODE =B.CODE
                 AND C.TIME < A.TIME) 

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