본문 바로가기
Database/Oracle

[ORACLE] USER_TAB_PARTITIONS : 오라클 파티셔닝 정보를 꿰뚫는 전략 가이드

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

USER_TAB_PARTITIONS : 오라클 파티셔닝 정보를 꿰뚫는 전략 가이드
[ORACLE] USER_TAB_PARTITIONS

1. USER_TAB_PARTITIONS란?

USER_TAB_PARTITIONS는 오라클 데이터베이스에서 사용자 스키마 내에 존재하는 파티션 테이블의 각 파티션 정보를 조회할 수 있는 데이터 딕셔너리 뷰입니다. 이 뷰는 테이블 파티션 전략을 설계하거나, 성능 이슈를 진단할 때 핵심적인 정보를 제공합니다.

예를 들어, 로그 데이터를 월별로 분리해 저장한 테이블이 있다면, 각각의 파티션 이름, 생성 시점, 파티션 범위 등을 USER_TAB_PARTITIONS를 통해 파악할 수 있습니다.

2. 주요 컬럼 설명

USER_TAB_PARTITIONS의 대표적인 컬럼은 다음과 같습니다.

컬럼명 설명
TABLE_NAME 파티션이 속한 테이블 이름
PARTITION_NAME 파티션 이름
HIGH_VALUE 파티션의 범위 조건
PARTITION_POSITION 파티션 순서
TABLESPACE_NAME 해당 파티션이 속한 테이블스페이스
NUM_ROWS 파티션 내 행의 수 (ANALYZE 후에만 정확)

3. 실전 예제: USER_TAB_PARTITIONS 활용

다음은 실무에서 자주 활용되는 예제입니다.

3.1. 특정 테이블의 파티션 목록 확인


SELECT 
  PARTITION_NAME, 
  HIGH_VALUE, 
  TABLESPACE_NAME 
FROM 
  USER_TAB_PARTITIONS 
WHERE 
  TABLE_NAME = 'LOG_HISTORY';
      

3.2. 행 수가 가장 많은 파티션 찾기


SELECT 
  PARTITION_NAME, 
  NUM_ROWS 
FROM 
  USER_TAB_PARTITIONS 
WHERE 
  TABLE_NAME = 'LOG_HISTORY' 
ORDER BY 
  NUM_ROWS DESC;
      

3.3. 테이블과 테이블스페이스 간 분포 확인


SELECT 
  TABLESPACE_NAME, 
  COUNT(*) AS PARTITION_COUNT 
FROM 
  USER_TAB_PARTITIONS 
GROUP BY 
  TABLESPACE_NAME;
      

4. USER_TAB_PARTITIONS를 활용한 성능 진단 전략

오라클 성능 문제는 테이블 크기만큼이나 파티션 단위에서도 발생할 수 있습니다. USER_TAB_PARTITIONS를 이용하면 다음과 같은 진단이 가능합니다.

  • 불균형 파티션 감지: NUM_ROWS 값이 특정 파티션에 치우쳐 있는 경우 리밸런싱 고려
  • 파티션 범위 이상 확인: HIGH_VALUE가 누락되었거나 의도치 않은 값으로 설정된 경우
  • 스토리지 사용 확인: 각 파티션별 테이블스페이스가 제대로 분산되었는지 점검

5. 파티션 전략 비교

다음은 파티셔닝 전략에 따른 특징 비교입니다.

전략 장점 단점 사용 예시
Range Partition 날짜 기반 데이터에 적합, 쿼리 최적화 유리 범위 설정이 잘못되면 누락 발생 가능 월별 로그 테이블
List Partition 불균형 데이터 분할에 유리 값 누락 시 기본 파티션 필요 지역별 사용자 데이터
Hash Partition 균등한 데이터 분산 가능 범위 기반 쿼리에 비효율 ID 기반 대규모 트랜잭션 데이터

6. USER_TAB_PARTITIONS 활용 시 주의사항

  • 통계 갱신 필수: NUM_ROWS 컬럼은 DBMS_STATS로 갱신해야 정확합니다.
  • 대소문자 일치: TABLE_NAME 검색 시 대소문자 구분이 있으므로 주의가 필요합니다.
  • 접근 권한: 다른 스키마 테이블은 ALL_TAB_PARTITIONS 또는 DBA_TAB_PARTITIONS 뷰 사용 필요

7. 결론

USER_TAB_PARTITIONS는 단순한 메타 정보 뷰를 넘어서, 테이블 파티셔닝의 구조를 이해하고 최적화할 수 있는 매우 중요한 도구입니다. 파티션 구조를 분석하고, 쿼리 성능을 진단하며, 저장소 분산 여부를 점검하는 데 있어 이 뷰를 정기적으로 활용하는 것은 고급 DBA 및 개발자에게 반드시 필요한 습관입니다.

8. 출처

728x90