minlog
article thumbnail

 

실행계획이란?

 

데이터 처리절차이다.  SQL이 갖는 성능상 문제점을 찾기 위해서 사용한다. 

확인 후 분석하여 튜닝이 가능하다.  인덱스 설계상 문제, 테이블 설계상 문제는 실행계획에서 찾아낼 수 없다.

 

 

01. 실행계획 확인 방법 -  오라클

  • EXPLAIN PLAN
  • SET AUTOTRACE

 

1-1. EXPLAIN PLAN

  • SQL 실행 계획만 확인 가능하고 데이터 처리는 하지 않는다.
  • 데이터베이스 부화가 되지 않는다. 
EXPLAIN PLAN
SET STATEMET_ID = 'TEST1' INTO PLAN_TABLE
FOR
SELECT /*+USE_NL(e,d)*/
e.ename, e.deptno, d.dname
FROM emp e, dept d
WHERE e.deptno = d.deptno;

 

  • 저장 결과를 확인하기 위해서 별도의 셀렉트 문이 필요하다.
  • 데이타를 읽지 않기때문에 소요시간 및 IO관련 정보를 알수 없다.
SELECT * FROM TABLE (DBMS_XPLAN.DISPLAY ('PLAN_TABLE','TEST1','ALL'));

 

 

 

1-2. SET AUTOTRACE

  • 한번의 명령으로 여러개의 SQL에 대한 실행계획을 바로 알 수 있다.
  • 다양하게 옵션을 사용할수 있어서 여러가지 정보를 선택적으로 확인 할 수 있다.
SET AUTOTRACE ON;
SELECT /*+USE_NL(e d)*/
e.ename,dept d
FROM emp e, dept d
WHERE e.deptno = d.deptno;

 

옵션 

※ 원하는 결과만 출력하기 위해 ON

SET AUTOTARCE ON EXPLAIN;

출력결과 => 실행계획 (IO출력 생략)

SET AUTOTARCE ON STATISTICS;

 출력결과 => IO관련 정보 (실행계획 생략)

SET AUTOTARCE TRACEONLY;

셀렉트 동작시 출력 된 결과물을 화면에 다 노출하지 않음 , 건수 실행 결과 IO 결과

SET AUTOTARCE TRACEONLY EXPLAIN;

데이터를 처리 하지 않고 실행계획만 제공 (큰 데이터 처리 시 사용)

SET AUTOTARCE TRACEONLY STATISTICS;

데이터를 처리 하지 않고 IO관련 정보만 제공

SET AUTOTRACE OFF;

AUTOTRACE  정보를 확인 하지 않기. 

 

 

 

02. 실행계획 분석

 

들여쓰기 뎁스가 서로 같은 경우 상단이 먼저 하단이 이후에 작업

분석 순서 : 3 => 4  => 2  => 1 => 0

 

 

 

 

profile

minlog

@jimin-log

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!