본문 바로가기
SQL

왜 조인 메소드를 선택할 때 NL조인을 가장 먼저 고려해야 할까?

by devdevdev 2022. 3. 17.

NL조인에서 사용하는 인덱스는 영구적으로 유지하면서 다양한 쿼리를 위해 공유 및 재사용하는 자료구조다.

반면, 해시조인에서 사용하는 해시테이블은 단 하나의 쿼리를 위해 생성하고 조인이 끝나면 곧바로 소멸하는 자료구조다. (같은 쿼리를 100개 프로세스가 동시에 수행하면, 해시 테이블도 100개가 만들어진다.)

 

따라서 수행시간이 짧으면서 수행빈도가 매우 높은 쿼리를 해시조인으로 처리하면 CPU와 메모리 사용률이 크게 증가한다. 해시 맵을 만드는 과정에서 여러 가지 래치 경합도 발생한다.

 

결론적으로 해시조인은 아래 3가지 조건을 만족할 때 사용하자.

1) 수행 빈도가 낮고

2) 쿼리 수행 시간이 오래 걸리는

3) 대량 데이터를 조인할 때

 

출처: 도서 <친절한 SQL 튜닝>

728x90

'SQL' 카테고리의 다른 글

서브쿼리(Subquery)의 종류  (0) 2022.03.17
NL조인의 특징  (0) 2022.03.17
Join의 종류(NL, Sort Merge, Hash)  (0) 2022.02.17
HackerRank - Challenges (Using 'subquery', 'with')  (0) 2021.03.27
Leetcode 267  (0) 2020.10.24

댓글