
오라클 데이터베이스에서 대용량 객체(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 컬럼에 저장하고 있었습니다. 전체 테이블이 커짐에 따라 쿼리 성능 저하 문제가 발생했으며, 다음과 같은 절차로 개선했습니다.
- 문서 생성일 기준으로 LOB 파티셔닝을 도입
- ALL_LOB_PARTITIONS 뷰로 파티션별 I/O 및 공간 사용량 분석
- 파티션별 자동 보관 정책을 구현해 이관 및 삭제 작업 효율화
- 테이블스페이스를 분리해 디스크 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
'Database > Oracle' 카테고리의 다른 글
| [ORACLE] ALL_INTERNAL_TRIGGERS 뷰 완벽 가이드 (0) | 2025.06.24 |
|---|---|
| [ORACLE] ALL_LOB_SUBPARTITIONS 완벽 가이드 : 서브 파티션 구조부터 활용까지 (0) | 2025.06.23 |
| [ORACLE] ALL_LOBS 뷰 완전 정복 : 개념, 활용 예제, 성능 팁까지 (0) | 2025.06.23 |
| [ORACLE] ALL_IND_SUBPARTITIONS 뷰 완전 분석 (0) | 2025.06.23 |
| [ORACLE] ALL_INDEXTYPE_OPERATORS 뷰 실무 완전 해석 (0) | 2025.06.23 |