EXPLAIN PLAN 활용 - Explain Plan 준비, Explain Plan 실행, EXPLAIN PLAN & Autotrace 결과 화면(예시)

CODEDRAGON Development/Software Engineering

반응형


 

 

EXPLAIN PLAN 활용

EXPLAIN PLAN 사용자들이 SQL문의 액세스 경로를 확인하여 성능개선 있도록 SQL문을 분석하고 해석하여 실행계획을 수립하고, 관련 테이블(plan_table) 저장하도록 지원해 주는 도구이다.

 

·       Explain Plan 준비

·       Explain Plan 실행

·       EXPLAIN PLAN & Autotrace 결과 화면(예시)

 

 

 

Explain Plan 준비

해당 사용자로 DB 접속하여 PLAN Table 생성

SQL> @$ORACLE_HOME/rdbms/admin/utlxplan

 

PLUSTRACE Role 생성

단계

쿼리

Sys user DB 접속

sqlplus "/ as sysdba"

PLUSTRACE role 생성 script 실행한다.

SQL> @ORACLE_HOME/sqlplus/admin/plustrce

사용자에게 PLUSTRACE 권한을 부여한다.

SQL> grant plustrace to scott;

 

 

Explain Plan 실행

·       해당 사용자로 DB 접속하여 Autotrace mode on으로 전환한다.

·       Plan_Table 확인한다.

·       PLAN_TABLE 결과 항목 의미

 

 

해당 사용자로 DB 접속하여 Autotrace mode on으로 전환한다.

Autotrace 명령어를 사용하기 전에 반드시 PLAN_TABLE 생성되어야 하고, PLUSTRACE 권한을 가지고 있어야 한다.

 

Autotrace Mode 전환(중지)

SQL> set autotrace on[off, traceonly]

 

On

SQL문의 실행 결과와 실행계획과 통계정보를 보여 주는 옵션

OFF

AUTOTRACE 해지하는 옵션

TRACEONLY

실행계획과 통계정보만을 제공하는 옵션

 

Mode Off 전환할 때까지 Plan_table write된다.

 

Autotrace Mode 확인한다.

SQL> show autotrace

 

 

Plan_Table 확인한다.

확인 예시

SQL> SELECT a.ename, a.sal, b.dname

FROM emp a, dept b

WHERE a.deptno = b.deptno;

선택된 Row 확인한다.

Plan 내용을 확인한다.

 

 

 

PLAN_TABLE 결과 항목 의미

항목

의미

Recursive call

재귀 호출의 횟수

DB block gets

현재의 블록이 요구된 횟수

Consistent gets

블록에 대해 요구된 Consistent Read 횟수

Physical reads

디스크로부터 읽어 들인 데이터 블록의 개수

Redo size

Redo 로그가 만들어진 크기

Byte sent via SQL*Net to client

클라이언트로 보내진 바이트

Byte received via SQL*Net from client

클라이언트로부터 받은 바이트

Sort (Memory)

메모리에서 일어난 소트

Sort (Disk)

디스크에서 일어난 소트

Row processed

연산을 하는 동안 처리한 row

 

 

EXPLAIN PLAN & Autotrace 결과 화면(예시)