이 Format은 Starts, A-Rows, Buffer의 출력값을 누적하여 보여준다.
구분 | 항목 | 설명 |
---|---|---|
PLAN 정보 | ID | 각 Operation ID |
Operation | 로우 단위의 액세스 정보 | |
Name | 액세스 하는 Object의 정보 | |
Starts | 각 Operation을 수행한 회수(만약 NL Join이라면 Looping한 회수) | |
E-Rows | 각 Operation에서 예측한 로우수 | |
A-Rows | 각 Operation에서 실제 액세스한 로우수 | |
A-Time | 각 Operation에서 실제 수행된 시간(단위 : 초) | |
Buffer | 각 Operation에서 실제 읽은 Logical Block | |
Read | 각 Operation에서 실제 읽은 Physical Block | |
추가 정보 | Predicate Information | SQL에서 WHERE절에 사용되는 조건들이 각 Operation에 적용되는 정보 |
SQL> SET SERVEROUTPUT OFF; SQL> SET LINESIZE 2000; SQL> ALTER SESSION SET STATISTICS_LEVEL = ALL; SQL> SELECT /*+ USE_NL(E D) */ * FROM EMP E, DEPT D WHERE E.DEPTNO = D.DEPTNO AND D.DEPTNO IN (10, 20, 30); SQL> SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(NULL, NULL, 'ALLSTATS')); ------------------------------------------------------------------------------------------------------------- | Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | Buffers | Reads | ------------------------------------------------------------------------------------------------------------- | 1 | TABLE ACCESS BY INDEX ROWID | EMP | 1 | 900K| 999 |00:00:00.26 | 156 | 10 | | 2 | NESTED LOOPS | | 1 | 2701K| 1003 |00:00:07.22 | 86 | 6 | | 3 | INLIST ITERATOR | | 1 | | 3 |00:00:00.03 | 9 | 2 | | 4 | TABLE ACCESS BY INDEX ROWID| DEPT | 3 | 3 | 3 |00:00:00.03 | 9 | 2 | |* 5 | INDEX RANGE SCAN | DEPT_U1 | 3 | 3 | 3 |00:00:00.02 | 6 | 1 | |* 6 | INDEX RANGE SCAN | EMP_N1 | 3 | 906K| 999 |00:00:00.21 | 77 | 4 | ------------------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 5 - access(("D"."DEPTNO"=10 OR "D"."DEPTNO"=20 OR "D"."DEPTNO"=30)) 6 - access("E"."DEPTNO"="D"."DEPTNO") filter(("E"."DEPTNO"=10 OR "E"."DEPTNO"=20 OR "E"."DEPTNO"=30))
-- 1회 수행 ------------------------------------------------------------------------------------------------------------- | Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | Buffers | Reads | ------------------------------------------------------------------------------------------------------------- | 1 | TABLE ACCESS BY INDEX ROWID | EMP | 1 | 900K| 999 |00:00:00.26 | 156 | 10 | | 2 | NESTED LOOPS | | 1 | 2701K| 1003 |00:00:07.22 | 86 | 6 | | 3 | INLIST ITERATOR | | 1 | | 3 |00:00:00.03 | 9 | 2 | | 4 | TABLE ACCESS BY INDEX ROWID| DEPT | 3 | 3 | 3 |00:00:00.03 | 9 | 2 | |* 5 | INDEX RANGE SCAN | DEPT_U1 | 3 | 3 | 3 |00:00:00.02 | 6 | 1 | |* 6 | INDEX RANGE SCAN | EMP_N1 | 3 | 906K| 999 |00:00:00.21 | 77 | 4 | ------------------------------------------------------------------------------------------------------------- -- 2회 수행 -- Starts, A-Rows, Buffers의 누적정보를 보여준다. ------------------------------------------------------------------------------------------------------------- | Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | Buffers | Reads | ------------------------------------------------------------------------------------------------------------- | 1 | TABLE ACCESS BY INDEX ROWID | EMP | 2 | 900K| 1998 |00:00:00.28 | 312 | 10 | | 2 | NESTED LOOPS | | 2 | 2701K| 2006 |00:00:07.25 | 172 | 6 | | 3 | INLIST ITERATOR | | 2 | | 6 |00:00:00.03 | 18 | 2 | | 4 | TABLE ACCESS BY INDEX ROWID| DEPT | 6 | 3 | 6 |00:00:00.03 | 18 | 2 | |* 5 | INDEX RANGE SCAN | DEPT_U1 | 6 | 3 | 6 |00:00:00.02 | 12 | 1 | |* 6 | INDEX RANGE SCAN | EMP_N1 | 6 | 906K| 1998 |00:00:00.22 | 154 | 4 | -------------------------------------------------------------------------------------------------------------
- 강좌 URL : http://www.gurubee.net/lecture/2139
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.