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 결과 화면(예시)
'Development > Software Engineering' 카테고리의 다른 글
매뉴얼의 요건 (0) | 2018.12.12 |
---|---|
크로스 컴파일러(cross compiler) (0) | 2018.12.07 |
API(Application Programing Interface), 웹 API (Web API) (0) | 2018.12.02 |
개발환경 구축하기 - 수행 순서 (0) | 2018.11.27 |
Summary - 소프트웨어 요구사항 검증 기준, 분석 모델의 기술적 타당성 검토에 있어서 각 단계별 검토 내용, 요구 사항 정의서 작성 및 유스케이스 목록 작성 실습 테스트 예시 (0) | 2018.11.23 |