우리 회사 데이터베이스를 티베로로 변경하기
AutoTrace 0 0 99,999+

by 티베로 티베로 실행계획 [2018.10.11]


AutoTrace는 Explain Plan과 달리 SQL을 실제로 수행한 이후 SQL 실행결과, 실 제 수행계획(옵션에 따라 예상계획), 통계 자료 등의 정보를 옵션에 따라 전체 혹은 일부 출력한다

Explain Plan보다 다양한 정보들을 많이 포함하고 있어 SQL 튜닝 에 보다 유용하지만 DBA 권한 혹은 PLUSTRACE 권한이 존재하는 계정으로 tbsql 을 통해서만 사용이 가능하다.

실행문법

SET AUTOTRACE 옵션(OFF | ON | TRACEONLY | ON EXPLAIN | ON STATISTICS | ON PLANSTAT)

필요 권한

GRANT PLUSTRACE TO TIBEROTEST; (생성: @$TB_HOME/scripts/plustrace.sql)

수행결과 분석
  • - db block gets : current mode에서 읽은 database buffer block 수
  • - consistent gets : consistent mode에서 읽은 database buffer block 수
  • - physical reads : database buffer가 아닌 물리적인 디스크로부터 읽은 block 수
  • - redo size : redo log가 만들어진 크기(size)
  • - sorts (disk) : disk에서 일어난 sort 수
  • - sorts (memory) : memory에서 일어난 sort 수
  • - rows processed : 연산을 하는 동안 처리한 row 수
  • 옵션 내용
    SET AUTOTRACE OFF AUTOTRACE를 수행하지 않는다(기본값).
    SET AUTOTRACE ON 예상 실행계획, 실행결과, 통계 자료 출력
    SET AUTOTRACE TRACEONLY 예상 실행계획, 통계 자료를 출력
    SET AUTOTRACE ON EXPLAIN 실행결과, 예상 실행계획을 출력
    SET AUTOTRACE ON STATISTICS 실행결과, 통계 자료를 출력
    SET AUTOTRACE ON PLANSTAT 실제 실행계획 (단, alter session set GATHER_SQL_PLAN_STAT=’Y’ 필요), 실행결과

1) plustrace role 생성 및 AutoTrace 수행
@tibero:/tibero/tibero6/scripts # tbsql sys/*****

-- ROLE 생성 및 부여
SQL> @$TB_HOME/scripts/plustrace.sql
SQL> GRANT PLUSTRACE TO TIBEROTEST;
@tibero:/tibero/tibero6/scripts # tbsql tiberotest/tibero

-- 보유 ROLE 확인
SQL> SELECT GRANTED_ROLE FROM USER_ROLE_PRIVS;

------------------
GRANTED_ROLE
-----------------
CONNECTED
PLUSTRACE


-- AUTOTRACE 수행
SQL> alter session set GATHER_SQL_PLAN_STAT='Y';
Session altered.

SQL> SET AUTOTRACE ON PLANSTAT
SQL> select sum(1) from code;
 SUM(1)
----------
 4
1 row selected.

2) AutoTrace 수행결과
SQL ID: 4z6z9dm60n68k
Child number: 8915
Plan hash value: 509625169

Execution Stat(실제 실행계획)
----------------------------------
 1 COLUMN PROJECTION(Time:.01ms, Rows:1, Starts:1)
 2   SORT AGGR (Time:.08 ms, Rows:1, Starts:1)
 3     TABLE ACCESS(FULL):CODE(Time:.38ms, Rows:4, Starts:1)


** 만약 set autotrace on을 할 경우는 실제 실행계획이 아닌 
예상 실행계획과 함께 아래 통계자료가 함께 출력됨

Execution Plan
-------------------------------------
 1 COLUMN PROJECTION (Cost:132, %%CPU:0, Rows:1)
 2   SORT AGGR (Cost:132, %%CPU:0, Rows:1)
 3     TABLE ACCESS(FULL): CODE (Cost:132,%%CPU:0, Rows:19239)

 
 NAME            VALUE
--------------- ---------
db block gets    10 
<-- fullscan시 datafile의 metablock(block관리를 위한 정보가 적재)을 current로 읽음
consistent gets  19 
<-- 실제 data가 적재되어 있는 block을 일관성있게 consistent read로 읽음
physical reads    0
redo size        60
sorts(disk)       0
sorts(memory)     0
rows processed    1

  • - 해당 강좌는 도서 " [우리 회사 데이터베이스를 티베로로 변경하기]"의 내용을 옮겼습니다.
  • - 해당 도서는 기간계 DBMS(DATABASE MANAGEMENT SYSTEM)를 티베로로 전환하는 실제 프로젝트를 수행한 실무자가 DBMS 전환 과정과 실제 적용 사례, 문제 해결 과정 등을 자세하게 설명하고 있습니다.

- 강좌 URL : http://www.gurubee.net/lecture/4152

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입