Simplify Statistics
통계치 수집 방법
Oracle Database 10g부터는 최상의 성능을 얻기 위해서, fixed 테이블과 dictionary 테이블에 대한 통계치를 수집해야 한다. fixed 테이블에 대한 통계수집은 전형적인 시스템 부하(workload) 상태에서 한번만 하면 된다.
Dictionary 테이블
DBMS_STATS.GATHER_{SCHEMA|DATABASE}_STATS 로 수집한다.
또한 DBMS_STATS.GATHER_DICTIONARY_STATS로도 통계자료를 수집할 수 있다. 이 procedure를 수행하기 위해서는 ANALYZE ANY DICTIONARY권한이 주어져야 한다.
Fixed 테이블
DBMS_STATS.GATHER_FIXED_OBJECTS_STATS 로 수집한다. 이 procedure에는 다음과 같은 파라미터들이 있다.
STATTAB : 현재 통계 자료를 어디에 저장할지를 알려주는 파라미터.
STATID : STATTAB와 관계된 optional identifier.
STATOWN : STATTAB를 포함하는 스키마.
NO_INVALIDATE : TRUE로 setting할 경우 종속적인 cursor를 invalidate시키지 않는 파라미터
이렇게 수집된 통계자료는 DELETE_FIXED_OBJECTS_STATS로 없앨 수 있다.
또한 EXPORT_FIXED_OBJECTS_STATS와 IMPORT_FIXED_OBJECTS_STATS 를 통해 export와 import에 대한 통계 자료를 수집할 수 있다.
Oracle Databse 10g부터는 STATISTICS_LEVEL 파라미터가 글로벌 스위치로 바뀌었다. 그래서 {ALTER|CREATE} [NO]MONITORING 문이 더 이상 사용되지 않는다.
Dictionary Statistics 통계 생성방법
1) Dictionary 통계정보를 저장 & 관리할 table을 생성한다.
exec dbms_stats.create_stat_table(‘SYSTEM’,’mystats’);
2) Dictionary 통계를 수집한다.
exec dbms_stats.gather_dictionary_stats(stattab=>’mystats’,statid=>’DAY’,statown=>’SYSTEM’);
3) Dictionary 통계정보를 load한다.
exec dbms_stats.import_dictionary_stats(stattab=>’mystats’,statid=>’DAY’);