DBAtlas · 데이터베이스 운영 아틀라스

통계 수집(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는 업무 시간대에 부하가 크다.

DBAtlas에서 열기 →

관련 항목