DB/SQL

옵티마이저 조인

씩씩한 IT블로그 2022. 2. 18. 12:06
반응형

nested loop 조인

- 하나의 테이블에서 데이터를 먼저 찾고 그 다음 테이블을 조인

- 먼저 조회하는 테이블을 외부 테이블, 그 다음 조회하는 테이블을 내부 테이블이라고 한다.

- 외부테이블의 크기가 작은것을 먼저 찾는것이 중요

- random access가 많이 발생하므로 이를 줄여야 성능 향상.

 

Sort merge 조인

- 두 개의 테이블을 sort_area라는 메모리 공간에 모두 로딩하고 sort수행

- 두개의 테이블이 sort가 완료되면 두개의 테이블을 merge

- sort가 발생하기 때문에 데이터양이 많아지면 성능이 떨어진다

 

hash 조인

- 두 개의 테이블 중에서 작은 테이블을 hash 메모리로 로딩하고, 두개의 테이블의 조인키를 사용하여 해시 테이블을 생성

- 해시함수를 사용해서 주소를 계산하고, 해당 주소를 사용해서 테이블을 조인하기 때문에 CPU 연산 많음

- hash조인 시에는 선행 테이블이 충분한 메모리에 로딩되는 크기여야 한다

반응형