LIKE 쿼리속도 개선 0 1 6,136

by 김철수 [2024.07.19 15:42:40]


T1
NM
가나다라마바
가나다
T2
CD NM
1 가나
2 가나다라

 

SELECT T1.NM
     , (SELECT MAX(T2.CD) FROM T2 WHERE T1.NM LIKE T2.NM||'%') AS AA
FROM T1
;
결과
NM AA
가나다라마바 2
가나다 1

 

T1 NM값의 앞자리가 일치하는 T2의 NM을 찾아 가장 큰 CD를 가져오고 있습니다.

데이터는 T1 10만건, T2 5만건 정도입니다.

쿼리 속도를 개선할 수 있는 방법이 있을까요?

 

by 마농 [2024.07.19 17:41:23]

서브쿼리를 조인 형태로 바꿔 보세요.

SELECT a.nm
     , MAX(b.cd) aa
  FROM t1 a
  LEFT OUTER JOIN t2 b
    ON a.nm LIKE b.nm||'%'
 GROUP BY a.nm
;

 

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