728x90

1. USER_SUBPART_COL_STATISTICS란?
USER_SUBPART_COL_STATISTICS는 Oracle 데이터베이스에서 사용자 소유의 서브파티션 테이블에 대한 컬럼별 통계 정보를 저장한 뷰입니다. 이 뷰는 옵티마이저가 쿼리 실행 계획을 결정할 때 참조하는 데이터로, 성능 최적화에 필수적인 역할을 합니다.
2. 사용 목적
- 쿼리 최적화: 옵티마이저가 효율적인 실행 계획을 수립하기 위한 기준 제공
- 파티션 단위 튜닝: 각 서브파티션의 통계 정보를 기준으로 성능 병목 구간 진단
- 스케일 아웃 전략 수립: 파티션 통계에 기반한 테이블 구조 개선 방향 제시
3. 주요 컬럼 설명
| 컬럼명 | 설명 |
|---|---|
| TABLE_NAME | 통계가 수집된 테이블 이름 |
| SUBPARTITION_NAME | 서브파티션 이름 |
| COLUMN_NAME | 대상 컬럼 이름 |
| NUM_DISTINCT | 컬럼 값의 고유값 개수 |
| NUM_NULLS | NULL 값의 수 |
| DENSITY | 옵티마이저가 사용하는 분포 밀도 |
| HISTOGRAM | 히스토그램 존재 여부 및 유형 |
| LAST_ANALYZED | 마지막 분석 일자 |
4. 실전 활용 예제
SELECT TABLE_NAME, SUBPARTITION_NAME, COLUMN_NAME, NUM_DISTINCT, NUM_NULLS, DENSITY, HISTOGRAM
FROM USER_SUBPART_COL_STATISTICS
WHERE TABLE_NAME = 'SALES_DATA'
AND COLUMN_NAME = 'REGION_CODE'
ORDER BY SUBPARTITION_NAME;
위 쿼리는 SALES_DATA 테이블의 REGION_CODE 컬럼에 대해 각 서브파티션의 통계 정보를 확인할 수 있는 실용적인 예입니다.
5. 관련 통계 뷰 비교
| 뷰 이름 | 범위 | 대상 | 용도 |
|---|---|---|---|
| USER_TAB_COL_STATISTICS | 전체 테이블 | 컬럼 | 기본 컬럼 통계 정보 |
| USER_PART_COL_STATISTICS | 파티션 | 컬럼 | 파티션 단위 컬럼 통계 |
| USER_SUBPART_COL_STATISTICS | 서브파티션 | 컬럼 | 세부 통계 기반 최적화 |
6. 고급 활용 전략
- 쿼리 플랜 튜닝: 서브파티션 간 데이터 분포 차이를 기반으로 인덱스/조인 전략 수립
- 리포트 최적화: 시간 기반 파티셔닝 테이블에서 특정 구간만 읽도록 설계
- 통계 자동 수집 스케줄링: DBMS_STATS를 활용한 정기 수집으로 최신 정보 유지
7. 결론
USER_SUBPART_COL_STATISTICS는 서브파티션 구조의 테이블에서 컬럼 통계의 세부 사항을 파악하고, 효율적인 쿼리 실행을 위한 중요한 기반이 됩니다. 특히 분산 처리나 OLAP 환경에서 통계 품질이 성능에 직접적인 영향을 미치기 때문에, DBA 및 개발자는 이 뷰를 정기적으로 점검해야 합니다.
참고 자료
- Oracle® Database Performance Tuning Guide 21c
- Oracle® Database SQL Tuning Guide
- Oracle Help Center: https://docs.oracle.com/en/
728x90
'Database > Oracle' 카테고리의 다른 글
| [ORACLE] USER_SUBPART_KEY_COLUMNS로 서브파티션 키 구조 완벽 분석 (0) | 2025.08.07 |
|---|---|
| [ORACLE] USER_SUBPART_HISTOGRAMS 뷰로 히스토그램 기반 서브파티션 최적화하기 (0) | 2025.08.07 |
| [ORACLE] USER_SOURCE 뷰 완전 해부와 실전 활용 전략 (0) | 2025.08.07 |
| [ORACLE] USER_SNAPSHOT_REFRESH_TIMES 뷰 완전 해부 및 활용법 (0) | 2025.08.07 |
| [ORACLE] USER_SNAPSHOT_LOGS 뷰의 의미와 실전 활용 가이드 (0) | 2025.08.07 |