본문 바로가기
Database/Oracle

[ORACLE] USER_SEGMENTS 완전 해설 : 사용자 객체의 스토리지 공간 정보 조회와 활용법

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

USER_SEGMENTS 완전 해설 : 사용자 객체의 스토리지 공간 정보 조회와 활용법
[ORACLE] USER_SEGMENTS

 

Oracle 데이터베이스에서는 모든 객체(테이블, 인덱스, 클러스터 등)는 세그먼트(segment)라는 단위로 물리적 공간에 저장됩니다. 이 때, USER_SEGMENTS 뷰는 현재 로그인한 사용자가 소유한 객체들의 세그먼트 정보를 조회할 수 있는 중요한 뷰입니다.

이 문서는 USER_SEGMENTS의 구조와 실무 활용 사례를 통해, 스토리지 사용량 분석, 테이블 공간 할당, 성능 최적화 등에 어떻게 유용하게 쓰일 수 있는지 구체적으로 설명합니다.

1. USER_SEGMENTS 뷰란?

USER_SEGMENTS는 Oracle 사용자 스키마 내에서 사용자가 소유한 모든 세그먼트(객체)의 물리적 저장 공간에 대한 정보를 제공합니다. 특히, 세그먼트 크기, 테이블스페이스, 블록 수 등은 성능 분석 및 용량 계획에 핵심 자료가 됩니다.

2. 주요 컬럼 설명

컬럼명 설명
SEGMENT_NAME 세그먼트 이름 (예: 테이블 이름, 인덱스 이름)
SEGMENT_TYPE 세그먼트 유형 (TABLE, INDEX, CLUSTER 등)
TABLESPACE_NAME 저장된 테이블스페이스 이름
BYTES 세그먼트가 사용하는 바이트 크기
BLOCKS 할당된 블록 수
EXTENTS 할당된 익스텐트 수
INITIAL_EXTENT 처음에 할당된 익스텐트 크기
NEXT_EXTENT 다음에 할당될 익스텐트 크기

3. 실전 활용 예제

가장 큰 세그먼트를 확인하는 예제:


SELECT SEGMENT_NAME, SEGMENT_TYPE, BYTES/1024/1024 AS SIZE_MB
FROM USER_SEGMENTS
ORDER BY BYTES DESC FETCH FIRST 5 ROWS ONLY;
  

특정 테이블이 어느 테이블스페이스에 저장되어 있는지 확인:


SELECT TABLESPACE_NAME
FROM USER_SEGMENTS
WHERE SEGMENT_NAME = 'EMPLOYEES';
  

4. 관련 뷰 비교표

뷰 이름 내용 조회 범위 주요 목적
USER_SEGMENTS 사용자 소유 객체의 세그먼트 정보 현재 사용자 세그먼트 크기 및 위치 확인
DBA_SEGMENTS 전체 데이터베이스 세그먼트 정보 DBA 전체 용량 관리 및 모니터링
USER_EXTENTS 세그먼트의 익스텐트 상세 정보 현재 사용자 세그먼트 내부 구조 분석
USER_TABLES 테이블의 논리적 속성 정보 현재 사용자 논리 스키마 설계 참조

5. 자주 묻는 질문 (FAQ)

Q1. BYTES와 BLOCKS의 차이는 무엇인가요?

A. BYTES는 세그먼트가 차지하는 실제 크기를 바이트 단위로 나타낸 값이며, BLOCKS는 테이블스페이스의 블록 단위 크기 기준으로 환산한 개수입니다.

Q2. 세그먼트 크기를 줄이려면 어떻게 해야 하나요?

A. 불필요한 데이터 삭제 후 SHRINK SPACE, MOVE 등의 명령을 통해 공간을 재구성할 수 있습니다. 또한, 인덱스 리빌드도 고려 대상입니다.

Q3. USER_SEGMENTS는 언제 업데이트되나요?

A. 데이터가 변경될 때마다 실시간 업데이트되지는 않으며, 특히 블록/바이트 통계는 통계 수집(DBMS_STATS)이나 DDL 작업 이후 정확히 반영되는 경우가 많습니다.

6. 결론

USER_SEGMENTS 뷰는 Oracle 데이터베이스에서 물리적 저장 공간 분석자원 최적화를 위한 핵심 도구입니다. 사용자 수준에서 객체가 차지하는 공간을 모니터링하고, 용량 설계나 성능 병목 구간을 조기에 발견하는 데 필수적인 정보를 제공합니다.

7. 참고 문헌

  • Oracle Database Administrator’s Guide – Segment Management Oracle 공식 문서
  • Oracle SQL Language Reference – USER_SEGMENTS View
728x90