토드에서 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 | 어떤 처리에 의해 생성되는 가상의 집합에서 추출한다.(주로 서브쿼리에 의해 수행된 결과) |
'데이터베이스 > Oracle' 카테고리의 다른 글
오라클 필드에 필드 추가/수정/삭제(Alter table) (0) | 2023.02.08 |
---|---|
오라클 시퀀스 생성/초기화 (0) | 2023.02.07 |
오라클 설치하기-무료버전 (0) | 2023.02.06 |
오라클 계정생성 (0) | 2023.02.03 |
오라클 버전 정보 알아내기 (0) | 2023.02.02 |
댓글