본문 바로가기
Database/Oracle

[ORACLE] USER_SUBPART_COL_STATISTICS로 파티션 컬럼 통계 완전 분석

by Papa Martino V 2025. 8. 7.
728x90

USER_SUBPART_COL_STATISTICS로 파티션 컬럼 통계 완전 분석
[ORACLE] USER_SUBPART_COL_STATISTICS

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 및 개발자는 이 뷰를 정기적으로 점검해야 합니다.

참고 자료

728x90