실행계획은 조인 방법, 조인 순서, 액세스 기법 등이 표현된다.
동일 SQL문에 대해 실행계획 즉, 실행방법이 달라진다고 해서 결과가 달라지지는 않는다.
조인 기법 : NESTED LOOPS
연산 : NESTED LOOPS, TABLE ACCESS, INDEX
Access 기법 : TABLE ACCESS, INDEX
최적화 정보 : (Cost=n Card=n Bytes=n)
SELECT STATEMENT Optimizer=ALL_ROW (Cost=3 Card=2 Bytes=114)
NESTED LOOPS(Cost=3 Card=2 Bytes=114)
TABLE ACCESS(BY INDEX ROWID) OF 'EMP' (TABLE) (Cost=2 Card=2 Bytes=74)
INDEX(UNIQUE SCAN) OF 'PK_DEPT'
예시
3 -> 4 -> 2-> 6 -> 5 -> 1
1 NESTED LOOPS
2 HASH JOIN
3 TABLE ACCESS(FULL) TAB1
4 TABLE ACCESS(FULL) TAB2
5 TABLE ACCESS(BY ROWID) TAB3
6 INDEX(UNIQUE SCAN) PK_TAB3
규칙에 따라 적절한 index가 존재하면, full table scan 보다 항상 index를 사용하려고 한다.
1. Single Row by RowId
Single Row by Cluster Join
Single Row by Hash Cluster Key with Unique or Primary Key
Single Row by Unique or Primary Key
Clustered Join
Hash Cluster Key
Indexed Cluster Key
Composite Index
Single-Column Indexes
Bounded Range Search on Indexed Columns
Unbounded Range Search on Indexed Columns
Sort-Merge Join
MAX or MIN of Indexed Column
ORDER BY on Indexed Column
15. Full Table Scan
: SQL 처리 흐름도는 SQL문의 내부적인 처리 절차를 시각적으로 표현한 것이다.
=> 액세스 기법이 표현된다. (실행 시간을 알 수 있는건 아니다.)