(데이터베이스) 결합알고리즘의 성능(NestedLoop, Hash, SortMerge)
*NestedLoop가 효율적으로 작동하지 않는 경우의 차선책은 Hash이다.
<Hash의 특징>
<Hash의 특징>
- 결합테이블로부터 해시테이블을 만들어서 활용하므로, NestedLoop에 비해 메모리를 크게 소모한다.
- 메모리가 부족한 경우 저장소를 사용하므로 지연이 발생한다.
- 출력되는 해시값은 입력값의 순서를 알지 못하므로, 등치 결합에만 사용할 수 있다.
<Hash가 유용한 경우>
- NestedLoop에서 적절한 구동테이블(상대적으로 충분히 작은 테이블)이 존재하지 않는 경우
- 앞서 'NestedLoop의 단점에서 본것처럼 구동테이블로 사용할만한 작은 테이블은 있지만, 내부 테이블에서 히트되는 레코드 수가 너무 많은 경우
- NestedLoops의 내부테이블에 인덱스가 존재하지 않는 경우(또는 여러가지 사정에 의해 인덱스를 추가할 수 없는) 경우
댓글
댓글 쓰기