2015년 4월 15일 수요일

Oracle Join Tip

하나의 조인 입력은 작고(행의 수가 10개 또는 그 이하인경우)

  다른 조인 입력은 꽤 크고

  조인 컬럼에 인덱스가 있는 경우

인덱스 중첩루프 (Nested Loop Join) 연산이 가장 빠른 조인 방법.

(왜냐하면, 최소의 I/O와 최소의 비교 작업만 필요하기 때문이다.)



  두개의 조인 입력이 크기가 작지 는 않지만

  조인 컬럼에 대해 정렬되어 있는 경우

 병합조인이 가장 빠른다. 



두개의 조인 입력이 크고 두 개의 입력이 크기가 비슷하면, 미리 정렬되어 있는 병합조인과 해시 조인이 유사한 성능을 제공한다. 그러나 두 개의 입력 크기가 서로 현저하게 차이가 나면 해시 조인 연산이 훨씬 더 빠르다.



* 해시조인(Hash Join)은 


  크기가 크고,
  정렬되어 있지 않고,
  인덱스가 없는 입력
을 효율적으로 처리할 수 있다.

(* 해시조인이 나타나면 인덱스가 걸리지 않았다고 배웠다.
 그래서 가급적 해시조인이 나타나지 않게 하는 것이 좋다고 배웠다.)

댓글 없음:

댓글 쓰기