읽는 기준

실행 계획은 Id 순서가 아니라 자식이 먼저, 부모가 나중입니다.

들여쓰기가 깊을수록 먼저 실행되고, 그 결과를 위쪽 Operation이 받아 조인과 반환을 이어 갑니다.

예제 조건
3: DEPT_NAME = '개발팀' 5: E.DEPT_ID = D.ID

계획 표의 구조

들여쓰기 = 부모가 기다리는 자식 작업

0
SELECT STATEMENT
최종 결과 집합 반환
1
NESTED LOOPS
부서 1건에 맞는 직원 행 결합
2
TABLE ACCESS BY INDEX ROWID (DEPARTMENTS)
부서 실제 행 읽기
*3
INDEX UNIQUE SCAN (PK_DEPT)
'개발팀' 부서 키 1건 탐색
4
TABLE ACCESS BY INDEX ROWID (EMPLOYEES)
직원 실제 행 읽기
*5
INDEX RANGE SCAN (IDX_EMP_DEPT)
찾은 dept_id로 직원 범위 탐색

실제 실행 순서

깊은 노드에서 시작해 부모로 올라감

3 → 2 → 5 → 4 → 1 → 0 번호를 위에서 아래로 읽지 말고
자식 완료 후 부모가 이어받는 흐름으로 봅니다.
3 → 2

'개발팀' 부서를 먼저 찾습니다

PK_DEPT 인덱스로 정확한 부서 키를 찾고, DEPARTMENTS 행을 읽어 조인의 기준값을 확보합니다.

5 → 4

그 dept_id로 직원 범위를 좁힙니다

IDX_EMP_DEPT를 따라 매칭되는 직원들을 찾고, EMPLOYEES 테이블에서 실제 행을 가져옵니다.

1 → 0

NESTED LOOPS가 두 결과를 묶어 반환합니다

자식 작업이 모두 끝난 뒤에만 부모 Operation이 실행되므로, 최종 SELECT는 맨 마지막에 결과를 내보냅니다.

읽는 요령: 같은 깊이라면 위에서 아래로, 깊이가 다르면 더 깊은 자식 노드부터 읽으면 실행 흐름이 바로 보입니다.