오라클 인덱스 통계 갱신의 목적과 효과
2025. 2. 2. 23:31ㆍIT/Oracle
반응형
1. 📌 통계 갱신의 목적
- 정확한 통계 정보 유지
- 옵티마이저가 쿼리 실행 계획을 생성할 때 테이블/인덱스 통계를 참조
- 데이터 변경 시 통계가 실제와 불일치할 수 있음 → 성능 저하
- 최적의 실행 계획 수립
- 최신 통계를 바탕으로 테이블 스캔 vs 인덱스 스캔 등 효율적인 접근 경로 선택
- 자원 활용 최적화
- 정확한 통계는 CPU, 메모리, I/O 리소스를 효율적으로 사용하도록 유도
2. ✅ 통계 갱신의 효과
- 적절한 인덱스 선택 유도
- 옵티마이저가 Selectivity(선택도)가 높은 인덱스를 우선 사용
- 실행 계획 개선
- 최신 데이터 분포에 맞는 효율적인 쿼리 경로 생성
- 불필요한 Full Table Scan 방지
- 응답 시간 단축 및 I/O 부하 감소
- 클러스터링 팩터 반영
- 인덱스 정렬 상태를 반영해 효율적인 인덱스 스캔 유도
- 데이터베이스 전반 성능 향상
- 특히 대용량 테이블, 복잡한 쿼리에서 효과적
3. 🔄 통계 갱신 방법
- ① 수동 갱신
- ② 자동 갱신
- Oracle은 기본적으로 자동 통계 수집(AUTO_TASKS) 또는 DBMS_SCHEDULER를 통해 주기적으로 수행
-- 테이블 통계 EXEC DBMS_STATS.GATHER_TABLE_STATS('스키마명', '테이블명');
-- 인덱스 통계 EXEC DBMS_STATS.GATHER_INDEX_STATS('스키마명', '인덱스명');
4. 📍 통계 갱신이 필요한 시점
- 데이터 변경률이 높은 테이블 (삽입/삭제/갱신 빈번)
- 신규 인덱스 생성 후
- 쿼리 성능 저하 및 실행 계획 비효율 발견 시
- 대규모 데이터 로딩 이후
5. ⚠️ 주의 사항
- 업무 외 시간대에 수행 권장 (시스템 부하 방지)
- 변동이 적은 정적 테이블은 과도한 통계 갱신을 피함
- 통계 갱신 전후에 실행 계획 변화 추적 권장
반응형
'IT > Oracle' 카테고리의 다른 글
SQL Merge문 성능향상 방법 (0) | 2025.02.10 |
---|---|
오라클 데이터베이스에서 마리아DB(MariaDB) 접속 위한 DB Link 생성 (0) | 2025.02.03 |
Oracle UCP(Universal Connection Pool) 기반 로드밸런싱 (0) | 2025.02.03 |
오라클 락 - Enq : us contention (0) | 2025.02.03 |
오라클 인덱스 통계 갱신 여부 확인 (0) | 2025.02.03 |