Nested Loop Join

2024. 3. 10. 00:45DBMS/ORACLE Admin

반응형

Nested Loop Join은 각 행을 다른 테이블의 모든 행과 비교하여 일치하는 행을 찾는 방식으로 동작한다. 이러한 비교는 랜덤 액세스를 유발할 수 있다. 랜덤 액세스란 주어진 위치에 있는 데이터에 직접 액세스하는 것을 의미한다. Nested Loop Join에서는 외부 테이블의 각 행에 대해 내부 테이블을 반복적으로 스캔하여 일치하는 행을 찾기 때문에 내부 테이블이 인덱스가 없는 경우에 더 많은 랜덤 액세스를 유발할 수 있다.

Nested Loop Join은 작은 크기의 데이터 집합에 대해서는 효율적일 수 있지만, 큰 데이터 집합에 대해서는 랜덤 액세스로 인한 성능 저하가 발생할 수 있다. 따라서 Nested Loop Join은 주로 작은 크기의 테이블이나 인덱스된 조인 컬럼을 사용할 때 성능이 좋다.

대용량 데이터를 조인할 때 후행 테이블에 인덱스가 없으면 Nested Loop Join을 사용하면 안된다. 대신에 옵티마이저가 자동으로 다른 조인 방식을 선택하게 된다.


색인된 중첩 반복 조인(Index Nested Loop Join)은 내부 테이블의 조인 컬럼에 적절한 인덱스가 있는 경우 사용된다. 이 경우 내부 테이블을 조인할 때 인덱스를 사용하여 효율적으로 필요한 행을 찾을 수 있다. 단일 반복 조인(Single Loop Join)은 내부 테이블에 인덱스가 없거나 인덱스가 조인 컬럼을 포함하지 않는 경우에 사용된다. 이때 외부 테이블의 각 행마다 내부 테이블을 전체로 순회하여 조인을 수행한다.

 

반응형

'DBMS > ORACLE Admin' 카테고리의 다른 글

EXTENT MANAGEMENT LOCAL  (0) 2024.03.10
ALTER SYSTEM SWITCH LOGFILE;  (0) 2024.03.10
Oracle DB SYSTEM  (0) 2024.03.10
HASH JOIN  (0) 2024.03.02
인덱스 효율  (0) 2024.03.02