DBMS_STATS 패키지
DBMS_STATS 패키지는 옵티마이저에서 스키마나 DB에 있는 모든 스키마 객체에 대한 통계뿐만 아니라 클러스터를 제외한 인덱스, 테이블, 컬럼과 파티션에 대한 통계정보를 수집하고 통계정보에 대한 검색, 수정, 익스포트, 임포트 등이 가능하다.
dbms_stats 패키지는 통계정보를 수집하기 위해 다음 프로시저들을 사용한다.
프로시저 | 설 명 |
---|---|
GATHER_INDEX_STATS | 인덱스 통계정보 수집 |
GATHER_TABLE_STATS | 테이블, 컬럼, 인덱스 통계정보 수집 |
GATHER_SCHEMA_STATS | 스키마 내의 모든 객체에 대한 통계정보 수집 |
GATHER_DATABASE_STATS | DB 내의 모든 객체에 대한 통계정보 수집 |
GATHER_SYSTEM_STATS | 시스템에 대한 CPU, I/O 통계정보 수집 |
SQL> exec dbms_stats.gather_database_stats; PL/SQL procedure successfully completed. SQL> exec dbms_stats.gather_system_stats; PL/SQL procedure successfully completed. SQL> exec dbms_stats.gather_schema_stats('SCOTT'); PL/SQL procedure successfully completed. SQL> exec dbms_stats.gather_table_stats('SCOTT','EMP'); PL/SQL procedure successfully completed. SQL> exec dbms_stats.gather_table_stats('SCOTT','EMP',NULL,50,TRUE,'FOR ALL COLUMNS',2,'DEFAULT',TRUE); PL/SQL procedure successfully completed. SQL> 여기서 ('SCOTT','EMP',NULL,50,TRUE,'FOR ALL COLUMNS',2,'DEFAULT',TRUE)가 의미하는 내용은 다음과 같다.
'SCOTT' | 통계 정보를 수집할 DB 사용자의 이름 |
'EMP' | 통계 정보를 수집할 테이블 |
NULL | 분할 테이블인지 여부 |
50 | 테이블 행의 50% 데이터로 통계정보 수집 |
TRUE | 불록에 대한 통계정보 수집 여부 |
'FOR ALL COLUMNS' | 모든 컬럼에 대한 통계정보 수집 |
2 | 통계정보 수집에서 병렬 질의 프로세스 2개 사용 |
'DEFAULT' | 통계정보 수집시 테이블과 분할 정보 이용 |
TRUE | 인덱스가 있으면 함께 통계정보 수집 |
'DataBase > Oracle' 카테고리의 다른 글
[펌]ANALYZE ? (0) | 2008.10.06 |
---|---|
ANALYZE 명령어 (0) | 2008.10.06 |
HINT관련설명 (0) | 2008.10.06 |
일수구하는쿼리... (0) | 2008.09.30 |
시노님(SYNONYM) 이란? (0) | 2008.09.10 |