본문 바로가기
데이터베이스/Oracle

토드에서 Explain Plan 보는 방법

by MonoSoft 2023. 2. 1.
728x90
반응형

토드에서 Explain Plan 보는 방법

 

토드에서 explain plan을 볼려면 아래의 스크립트를 실행 시킵니다.

 

C:\Program Files\Quest Software\TOAD\temps\toadprep.sql

 

toadprep.sql을 열어보면 toad유저를 생성할 때..

테이블스페이스를 지정하는데 데이타베이스에

존재하는 테이블 스페이스에 맞게 수정해야 합니다.

 

=============== 아래 부분은 제 오라클에 맞게 수정한 부분입니다. ==================

CREATE USER TOAD IDENTIFIED BY TOAD

DEFAULT TABLESPACE USERS

TEMPORARY TABLESPACE TEMP

QUOTA UNLIMITED ON USERS

QUOTA 0K ON SYSTEM;

========================================================================

 

toadprep.sql스크립트가 에러없이 수행이 되면

오라클에 toad라는 유저가 생성되고...

 

toad_plan_table, toad_plan_sql 테이블이 생성이 됩니다.

또한 시퀀스, 시노님, 권한부여,

함수가 에러없이 생성이 되면 설치가 다 끝난겁니다.

 

실행계획을 보는 방법은 우선 SQL을 실행할 유저로 토드를 접속합니다

그리고 나서 sql 을 실행하고 나면

토드 아래에  explain plan과 autotrace를 보면 됩니다.

 

아래의 그림은 제 피시에서 실행한 예 입니다

아래의 explain plan이 보이지 ?을 경우에는

토드 메뉴에서 view->explain plan을 선택하거나

아래 그림 맨 오른쪽 세번째 있는 엠브런스차 아이콘을 클릭하면 됩니다..

 

실행 계획을 보는 방법은 Operation 컬럼에

나온 내용과 아래의 표를 참고해서  보시면 됩니다.

그리고 Explain Plan 오른쪽에   Auto Trace를 보면 Trace정보가 나옵니다..

 

AutoTrace관련 몇 가지를 설명하면 아래와 같습니다

.

db block gets : current gets에 대한 논리적인 IO횟수(in memory)

consistent gets : read-consistent gets에 대한 논리적인 IO횟수(in memory)

physical reads : Disk에서 읽은 블럭수

redo size : (DML)문에 의해 생성된 redo의 양

sorts(memory) : memory에서 수행된 sort횟수

sorts(disk) : Temporary 영역에서 sort된 횟수

OPERATION의 종류와 OPTIONS에 대한 설명

 

OPERATION(기능) OPTIONS(옵션) 설      명
AGGREGATE GROUP  그룹함수를 사용하여 하나의 로우가 추출되도록 하는 처리(버전 7에서만 표시됨)
AND-EQUAL   인덱스 머지를 이용하는 경우
CONNECT BY   CONNECT BY를 사용하여 트리 구조로 전개
CONCATENATION   단위 액세스에서 추출한 로우들의 합집합을 생성
COUNTING   테이블의 로우스를 센다
FILTER   선택된 로우에 대해서 다른 집합에 대응되는 로우가 있다면 제거하는 작업
FIRST ROW   조회 로우 중에 첫번째 로우만 추출한다.
FOR UPDATE   선택된 로우에 LOCK을 지정한다.
INDEX UINQUE
RANGE SCAN
RANGE SCAN
DESCENDING
UNIQUE인덱스를 사용한다. (단 한개의 로우 추출)
NON-UNIQUE한 인덱스를 사용한다.(한 개 이상의 로우)
RANGE SCAN하고 동일하지만 역순으로 로우를 추출한다.
INTERSECTION   교집합의 로우를 추출한다.
MERGE JOIN OUTER 먼저 자신이ㅡ 조건만으로 액세스한 후 각각을 SORT하여 MERGE해 가는 조인
위와 동일한 방법이지만  outer join을 사용한다.
MINUS   MINUS 함수를 사용한다.
NESTED LOOPS OUTER 먼저 어떤 드라이빙 테이블의 로우를 액세스한 후 그 결과를 이용해 다른 테이블을 연결하는 조인 위와 동일하지만 outer join을 사용한다.
PROJECTION   내부적인 처리의 일종
REMOTE   다른 분산 데이터베이스에 있는 오브젝트를 추출하기 위해 DATABASE LINK를 사용하는 경우
SEQUENCE   시퀀스를 액세스 한다.
SORT UNIQUE
GROUP BY
JOIN
ORDER BY
같은 로우를 제거하기 위한 SORT
액세스 결과를 GROUP BY 하기 위한 SORT
MERGE JOIN을 하기 위한 SORT
ORDER BY를 위한 SORT
TABLE ACCESS FULL
CLUSTER
HASH
BY ROWID
전체 테이블을 스캔한다.
CLUSTER를 액세스 한다.
키값에 대한 해쉬 알고리즘을 사용(버전 7에서만)
ROWID를 이용하여 테이블을 추출한다.
UNION   두 집합의 합집합을 구한다.(중복없음)
항상 전체 범위 처리를 한다.
UNION ALL   두 집합의 합집합을 구한다.(중복가능)
UNION과는 다르게 부분범위 처리를 한다.
VIEW   어떤 처리에 의해 생성되는 가상의 집합에서 추출한다.(주로 서브쿼리에 의해 수행된 결과)

 

728x90
반응형

댓글