2012년 11월 5일 월요일

실행계획 데이터베이스 튜닝 - 실행계획분석 17

174P

해쉬 조인

대용량 데이터의 연결을 해결하기 위한 조인 방법

BUILD 테이블 - PROBE 테이블

180P

해쉬 조인의 성능은

BUILD 테이블의 빠른 해쉬 영역 생성
PROBE 테이블에 대한 최적의 엑세스
BUILD 테이블에 대한 최적의 엑세스

해쉬영역의 크기는 BUILD 테이블에 의해 추출되는 데이터의 건수에 의해 좌우된다.

해쉬 영역의 크기가 크다면 모든 데이터가 메모리에 구성되지 못하고 임시 테이블스페이스를 사용한다.

임시 테이블스페이스는 디스크에 존재한다.

해쉬 영역의 크기가 크다면 디스크에 있는 임시 테이블스페이스에 많이 엑세스해야하고 이는 디스크 I/O의 증가를 의미한다.

결국 BUILD 테이블에서 데이터를 적게 추출하여 해쉬 영역의 크기를 감소시키는 것이 해쉬 조인의 성능을 향상시키는 가장 중요한 항목이다.

PROBE 테이블은 중첩 루프 조인과 달리 조인 조건을 상수로 제공받지 못한다.

이 점이 중첩 루프 조인과 해쉬 조인의 가장 큰 차이점이다.

PROBE 테이블에서 추출되는 데이터가 적으면 인덱스, 많으면 전체 스캔.

전체 스캔인 경우 병렬 프로세싱.

/*+ ORDERED USE_HASH(A, B) PARALLEL(B, 4) */

184P

192P

댓글 없음:

댓글 쓰기