목록Sort Merge Join (2)
정미나닷컴
NL JOIN- Random access 발생량에 의해 성능이 좌우 -- 고객의 총 수는 10만 명, 납입 방법은 세가지-- 두 테이블 모두 JOIN 컬럼에 인덱스를 갖고 있다고 가정 - 필터 조건이 없는 경우SELECT /*+ use_nl (a b) */ A.납입방법, B.* FROM 납입방법 A, 고객 BWHERE B.납입방법코드 = A.납입방법코드; - 드라이빙 테이블 : 고객 T /*+ leading(b) use_nl(a) */▶ 10만번 + 10만번 = 총 20만번의 Random access - 드라이빙 테이블 : 납입 T /*+ leading(a) use_nl(b) */▶ 3번 + 10만번 = 총 10만 3번의 Random access * 다른 필터 조건이 없는 상황에서는 작은 쪽(=1쪽) 집..
기본 메커니즘 - Sort (양쪽 집합을 JOIN 컬럼 기준으로 정렬) → Merge (정렬된 양쪽 집합을 서로 Merge) SELECT /* ordered use_merge(d) */ E.EMP_NO, E.ENAME, D.DNAME FROM EMP E, DEPT D WHERE D.DEPT_NO = E.DEPT_NO; ▼begin for outer in (SELECT DEPT_NO, EMP_NO, RPAD(ENAME, 10) ENAME FROM SORTED_EMP) loop -- outer loop for inner in (SELECT DNAME FROM SORTED_DEPT WHERE DEPT_NO = outer.DEPT_NO) loop -- inner loop dbms_output.put_line(o..