Oracle 통계정보 수집
통계정보 수집(Analyze) 란?
Oracle 의 기능 중 하나로 인덱스,테이블,클러스터에 대한 통계정보를 생성 한다.
Analyze 가 생성한 통계정보를 바탕으로 비용에 따라 옵티마이저가 가장 효율적인 실행계획을 위한 코스트를 계산한다.
사용법
SQL> ANALYZE [OBJECT_TYPE] [OBJECT_NAME] [OPERATION MODE] STATISTICS
+ FORTABLE
+ FOR ALL INDEXES
+ FOR ALL INDEXED COLUUMN
오퍼레이션 모드 종류 와 설명
COMPUTE : 각각의 값들을 정확하게 계산하며, 가장 정확한 통계를 얻지만 처리 속도가 가장 느리다 (테이블 내장된 모든 행을 대상으로 통계 정보 수집)
ESTIMATE : 데이터 사전의 값 과 데이터 견본을 가지고 검사 후 통계를 예상한다. COMPUTE 보다 덜 정확하지만 처리 속도가 빠르다
DELETE : 테이블에 수집된 모든 통계정보를 삭제 한다.
- 일반적으로 COMPUTE를 많이 사용하며, 만일 COMPUTE 사용 시 DB 행 발생할 경우 ESTIMATE를 사용한다
예시
SQL> ANALYZE TABLE ENC_DAMO COMPUTE STATISTICS; (ENC_DAMO 테이블의 모든 컬럼에 대해 통계정보 수집)
SQL> ANALYZE TABLE ENC_DAMO COMPUTE STATISTICS FOR ALL INDEXES; (ENC_DAMO 테이블에 걸린 모든 인덱스에 대해 통계정보 수집)
SQL> ANALYZE TABLE ENC_DAMO COMPUTE STATISTICS FOR ALL INDEXED COLUMNS; (ENC_DAMO테이블 의 모든 인덱스 컬럼에 대해 통계정보 수집)
기대 효과
- 쿼리 처리 속도 향상