본문 바로가기
Database

[Oracle] 오라클 ALL_LOBS 뷰 완전정복 : 개념, 활용 예제, 성능 팁까지

by 코드개미 2025. 6. 23.

오라클 ALL_LOBS 뷰 완전정복: 개념, 활용 예제, 성능 팁까지
[Oracle] ALL_LOBS

 

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 형식으로 저장하고 있었습니다. 하지만 테이블스페이스 사용량이 급격히 증가하고 있었고, 이에 따라 다음과 같은 조치를 취했습니다.

  1. ALL_LOBS를 통해 모든 BLOB 컬럼과 SEGMENT_NAME을 확인
  2. 해당 세그먼트의 크기를 DBA_SEGMENTS 뷰를 통해 점검
  3. CHUNK 사이즈 조정 및 SECUREFILE 변환
  4. LOB 데이터에 대한 분산 저장 전략 수립

이러한 조치를 통해 평균 쿼리 응답 시간이 40% 개선되었고, 디스크 사용량 또한 25% 감소하였습니다.

결론

ALL_LOBS 뷰는 Oracle에서 LOB 데이터를 효율적으로 관리하고 모니터링하는 데 매우 중요한 도구입니다. 이를 적절히 활용하면 데이터 용량을 효과적으로 제어하고, 성능을 크게 향상시킬 수 있습니다. 오라클 기반 시스템을 운영하는 개발자와 DBA라면 반드시 숙지해야 할 뷰 중 하나입니다.

출처