물리적/논리적 조인
물리적 조인
- DB옵티마이저(DBMS 엔진)에 의해 내부적으로 발생하는 테이블 결합 방식
중첩반복 Nested Loop Join
- 후행 테이블에 하나씩 엑세스하며 선행 테이블에 조인시킴
- 선행 테이블 처리 범위가 작업량 결정
정렬병합 Merge Join
- 양쪽 테이블을 정렬 후 스캔하여 조인 수행
- 데이터 처리량이 많을 때 이점이 있으나 정렬 시 메모리 사용이 증가함
해시매치 Hash Join
- 두 테이블 중 작은 테이블로 해시테이블을 생성하고 큰 테이블로 해시테이블을 탐색하면서 조인하는 방식
- 해시테이블 생성 시 많은 메모리를 사용
사용
- 쿼리의 서두(select구문의 뒤)에 힌트를 이용해 물리적 조인 지정 가능
- 중첩반복: /+ ORDERED USE_NL(table1 table 2...) /
- 해시매치: /+ ORDERED USE_HASH (table_name) /
논리적 조인
- 사용자가 SQL문으로 지정하는 테이블 결합 방식
inner join
- 조인 시 두 테이블 간 동일한 값이 있는 행만 반환
outer join
- 두 테이블 간 교집합 데이터+한쪽 테이블에만 있는 데이터 반환
- 한쪽 테이블의 위치에 따라 Left, Right Join으로 나뉘어짐
cross join
- Join 조건이 없는 경우 생길 수 있는 모든 데이터의 조합 반환
self join
Full Outer Join