다음 중 NL(Nested Loops) Join의 특징을 설명한 것으로 가장 부적절한 것은?
① 조인을 한 로우씩 차례대로 진행하므로 부분범위 처리에 자주 사용된다.
② 먼저 액세스한 테이블의 처리 범위에 따라 전체 일량이 결정된다.
③ Inner쪽 조인 칼럼에 대한 인덱스 전략이 중요하지만, 조인 칼럼이 모두 포함되지 않은 인덱스라도 사용 가능하다.
④ 선행(Driving) 집합도 반드시 인덱스를 통해 액세스해야 효율적이다.
[출처] http://www.dbguide.net/da.db?cmd=snb9_4_view&boardUid=153397&boardConfigUid=81
* 정답 및 해설 *
정답 : ④
선행(Driving) 집합은 주어진 조건절에 따라 Full Table Scan이 유리할 수도 있다.
- 프로그래밍에서 사용하는 중첩된 반복문과 유사한 방식으로 조인을 수행
- 선행 테이블의 조건을 만족하는 행의 수가 많으면(처리 주관 범위가 넓으면), 그 만큼 후행 테이블의 조인 작업은 반복 수행되기 때문에 결과 행의 수가 적은(처리 주관 범위가 좁은) 테이블을 조인 순서상 선행 테이블로 선택하는 것이 전체 일량을 줄일 수 있음
- 랜덤 방식으로 데이터를 액세스하기 때문에 처리 범위가 좁은 것이 유리
- 조인이 성공하면 바로 조인 결과를 사용자에게 보여줄 수 있기 때문에 결과를 가능하 빨리 화면에 보여줘야 하는 온라인 프로그램에 적당한 조인기법