h5.필터 조건이 없을 때
select /*+ leading(b) use_nl(a) */ a.납입방법, b.*
from 납입방법 A, 고객 B
where B.납입방법코드 = A.납입방법코드;
select /*+ leading(a) use nl(b) */ a.납입방법, b.*
from 납입방법 a, 고객 b
where b.납입방법코드 = a.납입방법코드
다른 필터 조건이 없는 상황에서는 작은 쪽 집합을 드라이빙 하는 것이 유리함을 알 수 있다.
h5.필터 조건이 없을 때
select /*+ leading(b) use nl(a) */ a.납입방법명, b.*
from 납입방법 a, 고객 b,
where b.납입방법코드 = a.납입방법코드
and b.거주지역 = '부산'
select /*+ leading(a) use_nl(b) */ a.납입방법명,b.*
from 납입방법 a, 고객 b
where b.납입방법코드 = a.납입방법코드
and b.거주지역 = '부산'
h5.인덱스에 거주지역 컬럼 추가
select /*+ leading(a) use nl(b) */ a.납입방법명,b.*
from 납입방법 a, 고객 b
where b.납입방법코드 = a.납입방법코드
and b. 거주지역 = '부산'
조인 조건 외에 필터 조건이 있을 때는 인텍스 구성에 따라 유- 불리가 결정되며, 비효율이 없게끔 인텍스를 잘 구성해 주기만 한다면 역시 작은 쪽 집합을 드라이빙하는 것이 유리하다.
h5.소트 머지 조인과 해시 조인의 경우
소트 머지 조인
-PGA상에 정렬된 집합을 통해 조인 액세스가 일어나기 때문에 Random 액세스 발생량보다는 소트 부하에 의해 성능이 결정
-Disk Sort가 발생할 정도의 큰 테이블을 포함할 때는 큰 테이블을 드라이빙 하는 것이 빠름
-Memory Sort 발식으로 조인할 때는 작은 쪽 테이블을 드라이빙 하는 것이 조금 더 빠름
해시조인
-Hash Area에 Build Input(선행집합)을 모두 채울 수가 있느냐가 관건이므로 작은 쪽 테이블 드라이빙이 유리
- 강좌 URL : http://www.gurubee.net/lecture/3342
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.