본문 바로가기
Database/Oracle

[ORACLE] ALL_LOB_PARTITIONS 완벽 가이드 : 구조, 활용, 최적화까지

by Papa Martino V 2025. 6. 23.
728x90

오라클 ALL_LOB_PARTITIONS 완벽 가이드: 구조, 활용, 최적화까지
[Oracle] ALL_LOB_PARTITIONS

 

오라클 데이터베이스에서 대용량 객체(LOB: Large Object)는 다양한 형식의 비정형 데이터를 저장하는 데 사용됩니다. 특히 대규모 시스템에서 성능 및 관리 효율성을 고려해 LOB 데이터를 파티셔닝(partitioning)하는 경우, 이와 관련된 정보를 조회할 수 있는 뷰가 ALL_LOB_PARTITIONS입니다. 이 글에서는 ALL_LOB_PARTITIONS 뷰의 구조와 실무 활용 사례, 성능 최적화 방안까지 구체적으로 설명합니다. Oracle DBA, 데이터 아키텍트, 고급 개발자를 위한 실질적인 정보만을 엄선했습니다.

ALL_LOB_PARTITIONS란?

ALL_LOB_PARTITIONS는 사용자가 접근할 수 있는 모든 파티셔닝된 LOB 세그먼트에 대한 파티션 정보를 보여주는 데이터 딕셔너리 뷰입니다. 이 뷰를 통해 특정 테이블의 LOB 파티션 분포, 저장 위치, 할당된 공간 등을 손쉽게 파악할 수 있습니다.

주요 컬럼 설명

  • TABLESPACE_NAME: 해당 파티션이 저장된 테이블스페이스 이름
  • SEGMENT_NAME: LOB 데이터가 저장되는 세그먼트 이름
  • PARTITION_NAME: 해당 LOB 파티션의 이름
  • LOB_NAME: 테이블의 LOB 컬럼명
  • TABLE_NAME: 해당 LOB가 포함된 테이블 이름
  • OWNER: 테이블 소유자
  • BYTES: 파티션에 할당된 총 바이트
  • BLOCKS: 해당 파티션에 사용된 블록 수

활용 예제

예제 1: 특정 테이블의 모든 LOB 파티션 정보 조회

SELECT partition_name, tablespace_name, bytes
FROM all_lob_partitions
WHERE table_name = 'PRODUCT_DOCS'
AND owner = 'SALES';

예제 2: 테이블스페이스별 LOB 파티션 용량 집계

SELECT tablespace_name, SUM(bytes)/1024/1024 AS size_mb
FROM all_lob_partitions
GROUP BY tablespace_name;

예제 3: 특정 사용자 소유 LOB 파티션 모니터링

SELECT table_name, partition_name, blocks
FROM all_lob_partitions
WHERE owner = 'HR';

LOB 파티션 관리의 이점

  • 데이터 분산: I/O 부하 분산 가능
  • 성능 향상: 파티션 단위 쿼리로 처리 성능 개선
  • 유지보수 용이: 특정 파티션만 백업/복구 가능
  • 공간 절감: 사용량 분석 기반으로 적절한 리사이징 가능

LOB 파티셔닝 관련 뷰 비교

뷰 이름 설명 접근 범위
ALL_LOBS 모든 접근 가능한 LOB 컬럼 정보 LOB 컬럼 메타데이터 중심
ALL_LOB_PARTITIONS LOB 파티션별 상세 공간 정보 LOB 파티셔닝 정보
DBA_LOB_PARTITIONS DB 전체 LOB 파티션 정보 DBA 권한 필요

성능 최적화 팁

  • 파티션 키 전략 수립: 날짜, 지역, 유형 등으로 파티셔닝
  • 불균형 분산 점검: ALL_LOB_PARTITIONS로 각 파티션 사용량 모니터링
  • 테이블스페이스 분리: 고용량 파티션은 전용 테이블스페이스 사용
  • 자동 파티션 관리: 파티션 유지 스크립트를 통해 지속적인 관리
  • LOB 압축: SECUREFILE LOB + HIGH/LOW 압축 사용

실무 적용 사례

한 금융사의 전자문서 시스템에서는 하루 수천 건의 PDF 문서를 BLOB 컬럼에 저장하고 있었습니다. 전체 테이블이 커짐에 따라 쿼리 성능 저하 문제가 발생했으며, 다음과 같은 절차로 개선했습니다.

  1. 문서 생성일 기준으로 LOB 파티셔닝을 도입
  2. ALL_LOB_PARTITIONS 뷰로 파티션별 I/O 및 공간 사용량 분석
  3. 파티션별 자동 보관 정책을 구현해 이관 및 삭제 작업 효율화
  4. 테이블스페이스를 분리해 디스크 I/O 분산

그 결과 쿼리 응답 속도는 3배 이상 개선되었고, 백업 시간도 50% 단축되었습니다.

결론

ALL_LOB_PARTITIONS는 대용량 데이터를 보다 체계적이고 효율적으로 관리할 수 있게 해주는 강력한 툴입니다. 특히 파티셔닝을 도입한 LOB 테이블의 성능과 유지보수를 모니터링하고 최적화하는 데 있어 없어서는 안 될 뷰입니다. 데이터의 양과 복잡도가 증가하는 현대의 엔터프라이즈 환경에서, 이 뷰에 대한 이해는 Oracle 전문가의 핵심 역량 중 하나입니다.

출처

  • Oracle Documentation: https://docs.oracle.com/en/database/
  • Oracle Database Reference 21c – ALL_LOB_PARTITIONS
  • Real World Performance Group – Oracle Advanced Compression & LOBs
728x90