통계 수집(DBMS_STATS)
Oracle유지보수명령어
-- Single table (including cascaded indexes):
EXEC DBMS_STATS.GATHER_TABLE_STATS(ownname => 'CUSTOMER_APP', tabname => 'CUSTOMER', cascade => TRUE, estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE, degree => 4);
-- Whole schema:
EXEC DBMS_STATS.GATHER_SCHEMA_STATS(ownname => 'CUSTOMER_APP', estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE, cascade => TRUE, degree => 4);
-- Whole database (run only in a maintenance window / off-peak hours):
EXEC DBMS_STATS.GATHER_DATABASE_STATS(estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE, degree => 4);하는 일
옵티마이저를 위한 테이블/인덱스 통계를 수집하여 올바른 실행 계획이 생성되도록 한다.
사용 시점
대량 DML/로드 이후, 실행 계획이 악화될 때, 새 인덱스/테이블 생성 이후.
주의
통계 변경은 실행 계획을 바꿀 수 있다. 중요한 시스템에서는 먼저 AWR로 테스트/비교한다. DEGREE 병렬 처리는 CPU를 사용한다. GATHER_DATABASE_STATS는 업무 시간대에 부하가 크다.