DRIVEN TABLE 엑섹스 된 후 나중에 액세스 되는 테이블을 드리븐 테이블(DRIVEN TABLE, INNER TABLE)이라고 한다.
조건을 만족하는 5000만 건인 A 테이블과조건을 만족하는 1000건인 B 테이블과조인 시 드라이빙 순서에 따라 속도의 확연한 차이가 있다.
5000만 건을 먼저 드라이빙 하면 5000만 번을 반복하여 B 테이블을 탐색하며
1000건인 B가 먼저 드라이빙 되면최대 1000번 A 테이블 탐색이 반복된다.
즉, 작업 대상이 되는 행(rows)의 수가 적은 테이블부터 액세스 되어야 전체 탐색이 줄어든다.
근데, 여기서 5000만 번 반복하는데 그걸 1000번 하고 즉, 5000만 * 1000
1000번 먼저 하면 5000만번 나중에 반복하는데 그러면 1000 * 5000만 해서 둘다 똑같은거 아님?
즉 조삼모사 아니여? 왜 1000번이 드라이빙인게 유리한거야?
출처어디임? 랜덤액세스 할거 아니면 네말이 맞을거같은데. 인덱스 안잡고 조회한다는건가. 것도이상하고
해당 댓글은 삭제되었습니다.
그러네 나는 마취가덜깼나
레코드 100억 테이블을 인덱스로 1번 스캔한다 = log2(N) = 30?. 레코드 1024인 테이블을 100번 탐색한다. log2 2**1000 = 1000. 레코드 큰 테이블을 한 번 스캔하는 비용 <<<<< 적은 레코드 많이 스캔하는 비용 *log2는 가정
선행 테이블은 인덱스 스캔 한 번, 후행은 인덱스 스캔 다수. 고로 후행 테이블의 레코드가 많을 수록 성능 개선