반응형
출처 - https://yunamom.tistory.com/269#a12
문제 12. 다음 보기 중 JOIN에 대한 설명으로 올바르지 않은 것은?
1) Nested Loop Join은 랜덤 엑세스 (Random Access)가 발생한다. 2) Sort Merge Join은 정렬을 유발하여 조인하는 형태를 사용한다. 3) 대용량 데이터를 조인할 후행 테이블에 인덱스가 없을 경우 Nested Loop Join을 사용해야 한다. 4) Hash Join은 정렬작업이 없어 정렬이 부담되는 대량배치작업에 유리하다. |
더보기
방 법 | 설 명 |
중첩 반복 조인 (Nested Loop Join) |
- 좁은 범위에 유리 - 유리순차적으로 처리하며, Random Access 위주 - 후행(Driven) 테이블에는 조인을 위한 인덱스가 생성되어 있어야 함 - 실행속도 = 선행 테이블 사이즈 * 후행 테이블 접근횟수 |
색인된 중첩 반복 조인, 단일 반복 조인 (Single Loop Join) |
- 후행(Driven) 테이블의 조인 속성에 인덱스가 존재할 경우 사용 - 선행 테이블의 각 레코드들에 대하여 후행 테이블의 인덱스 접근 구조를 사용하여 직접 검색 후 조인하는 방식 |
정렬 합병 조인 (Sort Merge Join) |
- Sort Merge 조인은 해당 테이블의 인덱스가 없을때 수행이 된다. - 테이블을 정렬(Sort) 한 후에 정렬된 테이블을 병합(Merge) 하면서 조인을 실행한다. - 조인 연결고리의 비교 연산자가 범위 연산( >, < )인 경우 Nested Loop 조인보다 유리 - 두 결과집합의 크기가 차이가 많이 나는 경우에는 비효율적 |
해시 조인 (Hash Join) |
- 해시(Hash)함수를 사용하여 두 테이블의 자료를 결합하는 조인 방식 - Nested Loop 조인과 Sort Merge 조인의 문제점을 해결 - 대용량 데이터 처리는 상당히 큰 hash area를 필요로 함으로, 메모리의 지나친 사용으로 오버헤드 발생 가능성 |
해설 : 대용량 데이터를 조인할 때 후행 테이블에 인덱스가 없으면 Nested Loop조인을 사용하면 안 된다. 물론 옵티마이저가 이런 경우에 자동으로 Nested Loop조인으로 실행하지 않고 Hash조인 혹은 Sort Merge, Full Scan을 사용한다.
반응형