Explain plan
EXPLAIN PLAN 생성 방법
EXPLAIN PLAN
SET STATEMENT_ID = 'TEST1' INTO PLAN_TABLE
FOR
SELECT /*+USE_NL(e d)*/
e.name, e.deptno, d.dname
FROM emp e, dept d
WHERE e.deptno = d.deptno;
EXPLAIN PLAN 결과 확인 방법
SELECT *
FROM TABLE(DBMS_XPLAN.DISPLAY('PLAN_TABLE', 'TEST1', 'ALL'));
Set autotrace
SET AUTOTRACE ON EXPLAIN;
출력결과와 실행계획까지만 나타냄 통계정보는 생략
SET AUTOTRACE ON STATISTICS;
출력결과와 실행계획을 생략하고 I/O관련 정보를 선택적으로 보여줌
SET AUTOTRACE ON TRACEONLY;
데이터가 상당히 클때 사용하는데 출력결과를 나타내지 않음
SET AUTOTRACE ON TRACEONLY EXPLAIN;
데이터를 처리하지 않고 실행계획만을 보여줌(많이 사용함)
SET AUTOTRACE ON TRACEONLY STATISTICS;
데이터를 처리하지 않고 I/O관련 정보를 보여줌
SET AUTOTRACE ON OFF;
사용하지 않을때 사용
기본 예제
SET AUTOTRACE ON;
SELECT /*+USE_NL(e d)*/
e.name, e.deptno, d.dname
FROM emp e, dept d
WHERE e.deptno = d.deptno;
옵션 사용 예제
SET AUTOTRACE ON TRACEONLY EXPLAIN;
SELECT /*+USE_NL(e d)*/
e.name, e.deptno, d.dname
FROM emp e, dept d
WHERE e.deptno = d.deptno;
위 쿼리의 실행계획을 보면 다음과 같음
들여쓰기에 따라 순서가 결정되기 때문에 3 -> 4 -> 2 -> 5 -> 1 -> 0 순으로 실행
개념
사용자가 질의한 SQL문에 대해 최적의 실행방법을 결정하는 역할
옵티마이저 실행단계
SQL 해석
실행계획 수립
실행
종류별 특징