목록조인 (3)
미스터 역마살
- Hash 조인의 특징 1. Build Input의 크기가 작을때 효과적이다. ( PGA에 할당되는 Hash Area에 담길정도로 충분히 작아야 함) 2. 해시 키값으로 사용되는 컬럼에 중복값이 거의 없을때 효과적이다. ( Hash 알고리즘의 성능은 얼마나 Hash 충돌을 최소화 하느냐에 따라 달렸다.) -Hash 조인 선택 기준 1. 조인컬럼에 인덱스가 없어 비효율 적일때 2. 조인컬럼에 인덱스가 있더라도 NL조인 드라이빙 집합에서 Inner 쪽 집합의 조인 Access 양이 많아 Random Access 부하가 심할 때 3. Sort Merge 조인 하기에는 두 테이블이 너무 커 소트부하가 심할때 4. 수행빈도가 낮고 쿼리수행시간이 오래걸리는 대용향 테이블을 조인할 때 -끝-
- Sort Merge 조인의 특징 1. NL 조인은 조인컬럼에 인덱스 유무에 영향을 받지만 Sort Merge 조인은 영향을 받지 않는다. (물론 인덱스가 있다면 좋겠지만 말이다.) 2. 양쪽 집합을 정렬한 다음 NL조인과 같은 방식으로 진행하지만 PGA영역에 저장된 데이터를 이용하기 때문에 굉장히 속도가빠르다.(소트부하만 감수한다면..) 3. 양쪽집합을 개별적으로 읽고나서 조인한다. 따라서 조인컬럼에 인덱스가 없는 상황에서 두 테이블을 독립적으로 읽어 조인대상 집합을 줄일수 있을때 아주 유리하다. 4. 스캔위주의 Access 방식 사용 5. 등치 조건 말고도 사용이 가능하다. - Sort Merge 조인이 Hash 조인보다 좋은 상황 1. First 테이블에 소트연산을 대체할 인덱스가 있을때. 2. ..
- Nested Loop 조인의 특징 1. Random Access 위주의 조인 방식이다!! 따라서 인덱스 구성이 아무리 잘되어 있더라도 대량의 데이터를 조인 할때는 비효율 적이다. 2. 한 레코드씩 순차적으로 진행된다. 이 때문에 아무리 대용량 이라도 극적인 응답속도를 낼 수 있다. (부분범위 처리가 가능할 경우) 3. 먼저 Access 되는 Table의 범위에 의해 전체 일량이 결정 된다. 4. 다른 조인 방식과 비교했을때 인덱스 구성 전략이 특히나 중요하다. 5. NL 조인을 사용하기 위해서는 조인 컬럼에 인덱스가 필요하다. 결과적으로 NL조인은 소량의 데이터를 주로 처리하거나 부분범위 처리가 가능한 OLTP성 환경에 적격이다. -끝-