쿼리
위의 쿼리에 대해 실행계획이 다음과 같이 나왔다
그럼 이를 어떻게 읽는 것인가? ㅡ.ㅡ?
ID | P_ID | Operation | Ojbect name |
0 | SELECT STATEMENT | ||
1 | 0 | FILTER | |
2 | 1 | NESTED LOOPS | |
3 | 2 | TABLE ACCESS FULL | EMP |
4 | 2 | TABLE ACCESS BY ROWID | DEPT |
5 | 4 | INDEX UNIQUE SCAN | PK_DEPT |
6 | 1 | TABLE ACCESS FULL | SALGRADE |
ID와 P_ID를 유심히 살펴보자
먼가 상관성 있어 보인다
즉 P_ID는 부모의 ID로 아래와 같이 트리 구조를 만들어 볼 수 있다
트리를 만들어 보니 읽기가 편하다!
가장 먼저 실행되는부분이 가장 아래에 있는ID가 5번인 INDEX UNIQUE SCAN 부분이다
즉 ID 5~ 4 단계는 DEPT테이블의 PK INDEx인 PK_DEPT 를 SCAN하여 얻은 ROWID로 DEPT 테이블을 ACCESS 한다는 말이다
3번의 EMP 테이블의 ACCESS 방법은 Table Full Scan으로 읽어 4번과 Nested Loop 조인 하는 형식을 말한다
다시Nested Loop 된 결과(2번)는 Full Table Scan으로 읽은 SALGRADE 테이블에 의해 Filter 되어 결과가 나오게 된다
쉽죵?
'오라클 실무..' 카테고리의 다른 글
"SWOT 분석" - 제안서에서 절대로 빠지지 않는 목차 (0) | 2007.04.27 |
---|---|
Tuning 기초 - 2 (1) | 2006.05.17 |
Tuning 기초 - 2 (1) | 2006.05.17 |
Tuning 기초 - 1 (1) | 2006.05.17 |
NESTED LOOP, SORT MERGE, HASH JOIN (1) | 2006.05.17 |