행위

Statspack 예시

DB CAFE

thumb_up 추천메뉴 바로가기


튜닝툴인 Statspack을 사용하여 보자..

1. STATSPACK 설치

$ sqlplus "/as sysdba"
SQL> @?/rdbms/admin/spcreate.sql
         - STATSPACK 사용자 설정을 입력한다.
         - Perfstat Pass : oracle
         - Default_tablespace : SYSAUX
         - temp_tablespace : TEMP

2. 설치후, 오류 로그 확인

SQL> host ls
SQL> host more spcusr.lis | grep error
SQL> host more spctab.lis | grep error
SQL> host more spcpkg.lis | grep error

3. 성능 지표를 생성하기 위한 첫번째 snapshot 생성

$ sqlplus perfstat/oracle
SQL> variable snap number;
SQL> begin
         :snap := statspack.snap(i_snap_level=>7);
         end;
         /
SQL> print snap

4. 성능을 비교하기위한 두번째 snapshot 생성

$ sqlplus perfstat/oracle
SQL> variable snap number;
SQL> begin
         :snap := statspack.snap(i_snap_level=>7);
         end;
         /
SQL> print snap

5. 결과 지표 보고서 생성

$ sqlplus perfstat/oracle
SQL> set echo on
SQL> @?/rdbms/admin/spreport.sql
         - begin_snap : 1
         - end_snap : 2
         - report_name : sp_rep_1.lst
  • 스냅샷의 레벨 및 설정

- 스냅샷의 레벨별 기능

 레벨 0 : 일반적인 성능 통계정보를 수집
 레벨 1 : (R9.2.0~)
 레벨 5 : default 값으로 일반적인 통계정보에 추가하여 resource를 많이 사용하는 SQL 정보 포함
 레벨 6 : 레벨5 + SQL상세 실행계획 정보를 포함한다.
 레벨 7 : 레벨6 + 부모 Latch,자식 Latch정보등을 포함
 레벨이 높을수록 resource의 사용이 많다. 따라서 레벨10의 경우 필요시에만 한다.

- 레벨의 설정

SQL> exec statspack.snap(i_snap_level => 7);

- 레벨의 디폴트값 변경

SQL> exec statspack.modify_statspack_parameter(i_snap_level = > 0);
  • Statspack 사용시 고려사항

- statistics_level = typical 이상

  (show parameter statistics_level, alter system set statistics_level=typical)

- timed_statistics = true로 하여 시간 정보를 수집

  (show parameter timed_statistics, alter system set statistics_level=TRUE)

- statspack과 AWR을 같은 시간에 수집하는것을 피한다. - 스냅샷의 간격을 너무 길게 잡지 않는다. - ######## 이렇게 표헌되면 interval이 너무 길다는 것이다. - perfstat 스키마는 옵티마이저 통계정보에서 수집한다.