Oracle 데이터베이스를 운영하다 보면 텍스트, 이미지, 동영상 등의 대용량 데이터를 저장해야 할 경우가 생깁니다. 이러한 데이터를 처리할 때 가장 많이 사용되는 것이 바로 LOB(Large Object)이며, 오라클은 이러한 객체에 대한 메타데이터를 ALL_LOBS라는 데이터 딕셔너리 뷰를 통해 제공합니다.
ALL_LOBS란?
ALL_LOBS
는 현재 사용자가 접근할 수 있는 모든 LOB 컬럼에 대한 정보를 제공하는 Oracle 데이터 딕셔너리 뷰입니다. 이 뷰를 통해 특정 테이블에 존재하는 CLOB, BLOB, NCLOB, BFILE 등의 컬럼 정보를 확인할 수 있습니다.
주요 컬럼 설명
- OWNER: 테이블 소유자
- TABLE_NAME: LOB 컬럼이 포함된 테이블명
- COLUMN_NAME: LOB 컬럼명
- SEGMENT_NAME: 실제 데이터를 저장하는 세그먼트 이름
- TABLESPACE_NAME: LOB 데이터가 저장된 테이블스페이스
- CHUNK: 데이터를 읽고 쓰는 단위 크기
- PCTVERSION: 이전 버전을 저장하는 비율
- RETENTION: UNDO 데이터 유지 시간
ALL_LOBS의 활용 예제
ALL_LOBS 뷰는 LOB 데이터의 관리 및 성능 튜닝에 매우 유용하게 활용됩니다. 아래 예제를 통해 실제 활용 방안을 살펴보겠습니다.
예제 1: 특정 테이블에 존재하는 LOB 컬럼 확인
SELECT table_name, column_name, segment_name
FROM all_lobs
WHERE table_name = 'DOCUMENTS';
예제 2: 테이블스페이스별 LOB 세그먼트 현황 파악
SELECT tablespace_name, COUNT(*) AS lob_count
FROM all_lobs
GROUP BY tablespace_name;
예제 3: CHUNK 크기 확인을 통한 I/O 성능 분석
SELECT table_name, column_name, chunk
FROM all_lobs
WHERE owner = 'HR';
LOB 관련 뷰 비교
뷰 이름 | 설명 | 접근 범위 |
---|---|---|
ALL_LOBS | 접근 가능한 모든 LOB 컬럼 정보 | 현재 사용자 권한 기준 |
DBA_LOBS | DB 전체의 LOB 컬럼 정보 | DBA 권한 필요 |
USER_LOBS | 현재 사용자가 소유한 LOB 정보 | 자기 소유 객체만 |
LOB 성능 최적화 팁
- CHUNK 크기를 조정해 I/O 성능을 향상시킬 수 있습니다. 일반적으로 큰 값을 설정하면 더 나은 성능을 얻을 수 있습니다.
- PCTVERSION 또는 RETENTION 설정은 UNDO 공간 활용에 중요한 역할을 하므로 주의 깊게 관리해야 합니다.
- SECUREFILE LOB을 사용하면 기존 BASICFILE보다 더 향상된 압축 및 중복 제거 기능을 사용할 수 있습니다.
- LOB 데이터를 외부 파일(BFILE)로 관리할 수 있으며, 이 방식은 데이터베이스 크기를 줄이는 데 도움이 됩니다.
ALL_LOBS를 활용한 운영 사례
한 글로벌 제조업체는 제품 설명서와 회로도 파일을 BLOB 형식으로 저장하고 있었습니다. 하지만 테이블스페이스 사용량이 급격히 증가하고 있었고, 이에 따라 다음과 같은 조치를 취했습니다.
- ALL_LOBS를 통해 모든 BLOB 컬럼과 SEGMENT_NAME을 확인
- 해당 세그먼트의 크기를 DBA_SEGMENTS 뷰를 통해 점검
- CHUNK 사이즈 조정 및 SECUREFILE 변환
- LOB 데이터에 대한 분산 저장 전략 수립
이러한 조치를 통해 평균 쿼리 응답 시간이 40% 개선되었고, 디스크 사용량 또한 25% 감소하였습니다.
결론
ALL_LOBS 뷰는 Oracle에서 LOB 데이터를 효율적으로 관리하고 모니터링하는 데 매우 중요한 도구입니다. 이를 적절히 활용하면 데이터 용량을 효과적으로 제어하고, 성능을 크게 향상시킬 수 있습니다. 오라클 기반 시스템을 운영하는 개발자와 DBA라면 반드시 숙지해야 할 뷰 중 하나입니다.
출처
- Oracle 공식 문서: https://docs.oracle.com/en/database/
- Oracle Database SQL Language Reference
- Oracle DBA Guide - Performance & Tuning Handbook
'Database' 카테고리의 다른 글
[Oracle] 오라클 ALL_LOB_SUBPARTITIONS 완벽 가이드 : 서브파티션 구조부터 활용까지 (0) | 2025.06.23 |
---|---|
[Oracle] 오라클 ALL_LOB_PARTITIONS 완벽 가이드 : 구조, 활용, 최적화까지 (0) | 2025.06.23 |
[Oracle] 오라클 ALL_IND_SUBPARTITIONS 뷰 완전 분석 (0) | 2025.06.23 |
[Oracle] 오라클 ALL_INDEXTYPE_OPERATORS 뷰 실무 완전 해석 (0) | 2025.06.23 |
[Oracle] 오라클 ALL_INDEXTYPES 뷰 완전 정복 (0) | 2025.06.23 |