728x90
문제 9. 다음 조인 기법에 대한 설명으로 옳은 것은?
1. Sort-Merge Join은 Join하려는 두 집합을 Join Column으로 정렬하여 Sorted - List를 만들고 병합 하는 Join 기법으로, OLTP System에서 활용도가 높다.
2. Hash J oin은 대용량의 데이터 Join 시에 Sort-Merge Join이나 Nested-Loop Join보다 효율적이다.
3. Nested-Loop Join은 Driving Table(Outer Table)과 1nner Table 양쪽 모두 인텍스가 없을 때 효율적인 Join 기법이다.
4. Nested-Loop Join에서 두 Table 간의 Join 시 Driving Table(Outer Table) 과 1nner Table의 결정은 일의 양과 관계가 없다.
여기서 틀린 보기에 대해 맞는답으로 알려줘
❌ 보기 1. "Sort-Merge Join은 OLTP 시스템에서 활용도가 높다." (틀림)
✅ Sort-Merge Join은 주로 OLAP(분석 시스템)에서 사용된다.
- Sort-Merge Join은 조인 대상 테이블을 정렬한 후 병합(Merge)하는 방식이라 정렬 비용이 크다.
- OLTP(온라인 트랜잭션) 시스템은 빠른 응답 속도를 요구하기 때문에 정렬 비용이 높은 Sort-Merge Join보다는 Nested-Loop Join이 더 적합하다.
- Sort-Merge Join은 대량의 데이터를 한꺼번에 처리하는 OLAP(데이터 분석) 시스템에서 주로 활용된다.
✅ 보기 2. "Hash Join은 대용량의 데이터 Join 시에 Sort-Merge Join이나 Nested-Loop Join보다 효율적이다." (맞음)
- Hash Join은 해시 테이블을 이용하여 조인을 수행하는 기법으로, 대용량 데이터를 조인할 때 매우 효율적이다.
- Nested-Loop Join은 작은 데이터셋에서는 효과적이지만, 대량의 데이터에서는 성능이 떨어짐.
- Sort-Merge Join은 정렬 비용이 높아 대용량 데이터에서는 비효율적일 수 있음.
- 따라서 대용량 조인에서는 Hash Join이 가장 효율적이다.
❌ 보기 3. "Nested-Loop Join은 Driving Table(Outer Table)과 Inner Table 양쪽 모두 인덱스가 없을 때 효율적인 Join 기법이다." (틀림)
✅ Nested-Loop Join은 Inner Table에 인덱스가 있을 때 효율적이다.
- Nested-Loop Join은 Driving Table(Outer Table)의 각 행을 읽고, Inner Table에서 해당 행을 찾는 방식이다.
- 만약 Inner Table에 인덱스가 없다면, Outer Table의 각 행마다 Full Table Scan이 발생하여 성능이 저하된다.
- 따라서 Nested-Loop Join은 Inner Table에 인덱스가 존재할 때 효과적이다.
- 양쪽 테이블에 인덱스가 없으면 성능이 매우 낮아지므로, Hash Join이나 Sort-Merge Join을 고려해야 한다.
❌ 보기 4. "Nested-Loop Join에서 Driving Table(Outer Table)과 Inner Table의 결정은 일의 양과 관계가 없다." (틀림)
✅ Driving Table(Outer Table)과 Inner Table의 선택은 성능에 매우 중요한 영향을 미친다.
- Nested-Loop Join에서는 Driving Table을 작은 테이블로 선택하는 것이 성능상 유리하다.
- Outer Table(Driving Table)이 클 경우, Inner Table에서 검색해야 하는 횟수가 많아져 성능이 저하된다.
- 일반적으로 데이터 양이 적은 테이블을 Driving Table로 선택하는 것이 효율적이다.
🔹 정답: 보기 2.
➡ "Hash Join은 대용량의 데이터 Join 시에 Sort-Merge Join이나 Nested-Loop Join보다 효율적이다."
728x90
추가질문 : 보기 3번에 양쪽다 인덱스가 없을때 해쉬조인이 적합해? => YES!
🔹 왜 Hash Join이 적합할까?
- Nested-Loop Join은 Inner Table에 인덱스가 없으면 매번 Full Table Scan이 발생하므로 비효율적임.
- Sort-Merge Join은 정렬(Sort) 비용이 크므로, 대량 데이터에서 비효율적일 수 있음.
- Hash Join은 인덱스 없이도 효율적으로 조인을 수행할 수 있음.
- 작은 테이블을 해시 테이블로 만들고, 큰 테이블을 스캔하면서 해시 매칭을 수행하는 방식
- 정렬 과정 없이 해시 값으로 바로 매칭하므로 빠름
📌 즉, 양쪽 테이블에 인덱스가 없을 때는 Nested-Loop Join보다 Hash Join이 더 효율적!
🔹 정리
조인 방식양쪽 테이블 인덱스 없을 때 적합?이유
Nested-Loop Join | ❌ (비효율적) | Inner Table을 매번 Full Scan해야 해서 느림 |
Sort-Merge Join | ⚠️ (경우에 따라 가능) | 정렬 비용이 커서 비효율적일 수 있음 |
Hash Join | ✅ (가장 적합) | 해시 테이블을 만들어 빠르게 조인 |
그래서 보기 3번은 틀렸고, "양쪽 테이블에 인덱스가 없으면 Hash Join이 적합하다"가 맞는 설명이야!
728x90
'DAP 자격증' 카테고리의 다른 글
[DAP자격증] 과목5 - 오버헤드(Overhead)란? (0) | 2025.03.27 |
---|---|
[DAP자격증] 5과목 - B-Tree 인덱스 vs. Bitmap 인덱스 (0) | 2025.03.27 |
[DAP자격증] 5과목 - Latch(래치)와 경합(Contention)에 관하여 (0) | 2025.03.27 |
[DAP자격증] 5과목 - 히트율(Hit Ratio)에 관하여 (0) | 2025.03.27 |
[DAP자격증] 5과목 - 조인종류 : Hash Join, Nested Loop Join, Sort Merge Join (0) | 2025.03.27 |