오라클/Admin1

STATISTICS LEVEL

빵순이^^ 2010. 7. 23. 15:48

STATISTICS_LEVEL 초기화 파라미터는 ORACLE 9i R2 에서 주요 통계정보 수집과 advisor를 컨트롤하기 위해 처음으로 소개 되었다. STATISTICS_LEVEL 초기화 파라미터를 사용하여 캡처할 통계 집합을 제어할 수 있다.


STATISTIC_LEVEL 캡처 레벨


  • BASIC : MMON이 DB 통계정보를 캡처하지 않기 때문에 AWR 통계 및 metric이 계산되지 않고, ASMM 을 사용할 수 없으며 ADVISOR 기능이 비활성화 된다.

  • TYPICAL : 일부 통계만 수집. 일반적으로 오라클 데이터베이스 동작을 모니터하는 데 필요한 사항. 이 자동 통계 수집에서는 오래되거나 잘못된 통계로 인해 SQL 문의 성능이 저하될 가능성이 줄어든다.

  • ALL : 가능한 모든 통계 캡처. 별도의 SQL 진단 정보가 필요한 특별한 경우 외에는 사용하지 않는 것을 권장.




STATISTICS_LEVEL 변경


아래의 명령어로 3가지 레벨로 변경이 가능하다.

SQL> ALTER SESSION SET STATISTICS_LEVEL = BASIC;

SQL> ALTER SESSION SET STATISTICS_LEVEL = TYPICAL;

SQL> ALTER SESSION SET STATISTICS_LEVEL = ALL;




STATISTICS_LEVEL 확인

SQL> SELECT statistics_name,
  2         session_status,
  3         system_status,
  4         activation_level,
  5         session_settable
  6  FROM   v$statistics_level
  7  ORDER BY statistics_name;
 
                               Session    System     Activation Session
Statistics Name                Status     Status     Level      Settable
------------------------------ ---------- ---------- ---------- ----------
Buffer Cache Advice            DISABLED   DISABLED   TYPICAL    NO
MTTR Advice                    DISABLED   DISABLED   TYPICAL    NO
PGA Advice                     DISABLED   DISABLED   TYPICAL    NO
Plan Execution Statistics      DISABLED   DISABLED   ALL        YES
Segment Level Statistics       DISABLED   DISABLED   TYPICAL    NO
Shared Pool Advice             DISABLED   DISABLED   TYPICAL    NO
Timed OS Statistics            DISABLED   DISABLED   ALL        YES
Timed Statistics               DISABLED   DISABLED   TYPICAL    YES
.. 중간생략
 
16 rows selected.
 
SQL> ALTER SYSTEM SET statistics_level=typical;
 
System altered.
 
SQL> SELECT statistics_name,
  2         session_status,
  3         system_status,
  4         activation_level,
  5         session_settable
  6  FROM   v$statistics_level
  7  ORDER BY statistics_name;
 
                               Session    System     Activation Session
Statistics Name                Status     Status     Level      Settable
------------------------------ ---------- ---------- ---------- ----------
Buffer Cache Advice            ENABLED    ENABLED    TYPICAL    NO
MTTR Advice                    ENABLED    ENABLED    TYPICAL    NO
PGA Advice                     ENABLED    ENABLED    TYPICAL    NO
Plan Execution Statistics      DISABLED   DISABLED   ALL        YES
Segment Level Statistics       ENABLED    ENABLED    TYPICAL    NO
Shared Pool Advice             ENABLED    ENABLED    TYPICAL    NO
Timed OS Statistics            DISABLED   DISABLED   ALL        YES
Timed Statistics               ENABLED    ENABLED    TYPICAL    YES
.. 중간생략
 
16 rows selected.
 
SQL> ALTER SYSTEM SET statistics_level=all;
 
System altered.
 
SQL> SELECT statistics_name,
  2         session_status,
  3         system_status,
  4         activation_level,
  5         session_settable
  6  FROM   v$statistics_level
  7  ORDER BY statistics_name;
 
                               Session    System     Activation Session
Statistics Name                Status     Status     Level      Settable
------------------------------ ---------- ---------- ---------- ----------
Buffer Cache Advice            ENABLED    ENABLED    TYPICAL    NO
MTTR Advice                    ENABLED    ENABLED    TYPICAL    NO
PGA Advice                     ENABLED    ENABLED    TYPICAL    NO
Plan Execution Statistics      ENABLED    ENABLED    ALL        YES
Segment Level Statistics       ENABLED    ENABLED    TYPICAL    NO
Shared Pool Advice             ENABLED    ENABLED    TYPICAL    NO
Timed OS Statistics            ENABLED    ENABLED    ALL        YES
Timed Statistics               ENABLED    ENABLED    TYPICAL    YES
.....

위에서 현재 세션에서 사용가능한 상태를 나타내는 SESSION STATUS 가 각 LEVEL 에 따라서 차이가 나는지 나타난다.
위와 같이 ALL 로 설정했을 시에 불과 PLAN EXECUTION STATISTICS 와 Timed OS statistics 기능만이 Typical 보다 추가적으로 수집된다. ALL 로 설정시에 이 두 항목을 수집하기 위한 추가적인 오버헤드(마치 SYSTEM 레벨로 SQL TRACE 를 거는 정도와 같이)가 발생한다.
또한 PLAN EXECUTION STATISTICS 의 경우에는 10g의 신규 오라클 힌트인 /*+ gather_plan_statistics  */ 를 SQL문 단위로 설정해서 이용하는 방법도 있다.
이 힌트의 설명은 

http://ukja.tistory.com/121

을 참조.

결론은 굳이 ALL 로 설정하지 않고서도 TYPICAL 만으로도 대부분의 기능이 사용가능하다는 것이다.



참조 :

http://cafe.naver.com/prodba.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=9293