본문 바로가기
Database/Oracle

[ORACLE] DBA_DMT_USED_EXTENTS 완벽 분석 : Dictionary Managed Tablespace의 사용 공간 추적

by Papa Martino V 2025. 10. 14.
728x90

DBA_DMT_USED_EXTENTS
[ORACLE] DBA_DMT_USED_EXTENTS

 

Oracle 데이터베이스에서 DBA_DMT_USED_EXTENTS 뷰는 Dictionary Managed Tablespace(DMT) 환경에서 사용 중인 Extent(공간 단위)에 대한 상세 정보를 제공하는 핵심 시스템 뷰입니다. 이 뷰는 과거의 공간 관리 방식에서 데이터 저장 영역이 어떻게 분배되고 있는지를 모니터링하는 데 사용되며, 특히 테이블스페이스 최적화, 단편화 분석, 공간 회수 전략 수립에 매우 중요한 역할을 합니다.


1. DBA_DMT_USED_EXTENTS 개요

Oracle의 DMT 환경에서는 공간 관리가 데이터 딕셔너리(UET$, FET$ 등)에 의해 수행되었습니다. DBA_DMT_USED_EXTENTS는 바로 이 UET$ (Used Extents Table) 테이블을 기반으로 하여, 현재 사용 중인 Extent의 상세 정보를 보여줍니다. 즉, 각 세그먼트(Segment)가 어느 파일의 어느 블록을 사용 중인지, 얼마만큼의 공간을 차지하는지를 명확히 파악할 수 있는 뷰입니다. 이 뷰는 과거 DMT 구조에서 공간 관리의 투명성을 확보하기 위한 핵심 도구였으며, 현대의 Locally Managed Tablespace(LMT)가 등장하기 전까지 DBA들이 공간 분석 및 성능 진단을 위해 가장 자주 사용하던 뷰 중 하나입니다.


2. DBA_DMT_USED_EXTENTS의 역할

이 뷰는 세그먼트 단위로 사용된 Extent 목록을 관리하여 데이터 저장 공간의 효율을 모니터링할 수 있게 합니다. 특히 다음과 같은 상황에서 유용하게 사용됩니다.

  • 테이블스페이스 내 특정 세그먼트의 실제 저장 위치 추적
  • 데이터 파일의 공간 분포 및 활용률 분석
  • 단편화(Fragmentation) 문제 진단
  • 공간 확장 또는 테이블스페이스 재구성 계획 수립

3. 주요 컬럼 설명

다음 표는 DBA_DMT_USED_EXTENTS 뷰의 주요 컬럼과 그 의미를 정리한 것입니다.

컬럼명 데이터 타입 설명
TABLESPACE_NAME VARCHAR2 세그먼트가 속한 테이블스페이스 이름
FILE_ID NUMBER 데이터 파일의 식별자 번호
BLOCK_ID NUMBER 해당 Extent가 시작되는 블록 번호
BLOCKS NUMBER Extent가 차지하는 블록 수
BYTES NUMBER Extent의 크기 (바이트 단위)
OWNER VARCHAR2 세그먼트를 소유한 사용자
SEGMENT_NAME VARCHAR2 세그먼트 이름 (예: 테이블, 인덱스 등)
SEGMENT_TYPE VARCHAR2 세그먼트의 유형 (TABLE, INDEX 등)

위 컬럼들을 통해 DBA는 사용 중인 공간의 물리적 위치와 논리적 구조를 동시에 파악할 수 있습니다.


4. DBA_DMT_USED_EXTENTS 조회 예제

다음 예제는 현재 데이터베이스에서 사용 중인 모든 Extent 정보를 조회하는 기본 SQL입니다.


SELECT 
    TABLESPACE_NAME,
    SEGMENT_NAME,
    SEGMENT_TYPE,
    FILE_ID,
    BLOCK_ID,
    BLOCKS,
    BYTES
FROM 
    DBA_DMT_USED_EXTENTS
ORDER BY 
    TABLESPACE_NAME, SEGMENT_NAME;

이 쿼리는 각 세그먼트별로 사용 중인 Extent의 블록 범위와 크기를 확인할 수 있으며, 공간 분포 분석의 기초 데이터로 활용됩니다.


5. DBA_DMT_USED_EXTENTS 활용 사례

① 세그먼트별 공간 사용량 분석

세그먼트가 차지하는 총 공간을 파악하려면 다음 SQL을 사용합니다.


SELECT 
    OWNER,
    SEGMENT_NAME,
    SEGMENT_TYPE,
    SUM(BYTES)/1024/1024 AS TOTAL_MB
FROM 
    DBA_DMT_USED_EXTENTS
GROUP BY 
    OWNER, SEGMENT_NAME, SEGMENT_TYPE
ORDER BY 
    TOTAL_MB DESC;

이 결과는 세그먼트별 공간 사용량을 MB 단위로 표시하여, 대용량 세그먼트를 신속히 식별할 수 있게 합니다.

② 파일 단위 공간 분포 파악

특정 파일이 얼마나 많은 세그먼트를 포함하는지 분석할 때는 다음 쿼리를 활용합니다.


SELECT 
    FILE_ID,
    COUNT(DISTINCT SEGMENT_NAME) AS SEGMENT_COUNT,
    SUM(BYTES)/1024/1024 AS USED_SPACE_MB
FROM 
    DBA_DMT_USED_EXTENTS
GROUP BY 
    FILE_ID
ORDER BY 
    FILE_ID;

이 분석을 통해 데이터 파일 단위의 공간 균형을 확인하고, 필요 시 리밸런싱 전략을 수립할 수 있습니다.


6. DBA_DMT_USED_EXTENTS와 관련된 주요 뷰 비교

다음 표는 DMT 환경에서 공간 관리와 관련된 주요 뷰를 비교한 것입니다.

뷰 이름 역할 DBA_DMT_USED_EXTENTS와의 관계
DBA_DMT_FREE_SPACE 할당되지 않은 Free Extent 정보 제공 DBA_DMT_USED_EXTENTS의 반대 개념
DBA_SEGMENTS 세그먼트 전체 공간 요약 DBA_DMT_USED_EXTENTS 데이터를 집계한 결과
DBA_EXTENTS 현대 Oracle 버전에서 LMT 환경의 Extent 정보 제공 DBA_DMT_USED_EXTENTS의 LMT 버전

7. DMT와 LMT의 구조적 차이점 요약

DBA_DMT_USED_EXTENTS는 오직 DMT 환경에서만 존재하는 데이터 사전 뷰입니다. 현대 Oracle 버전에서는 LMT 방식이 기본으로 전환되어 DBA_EXTENTS 뷰가 그 역할을 대체하고 있습니다.

항목 DMT LMT
공간 관리 방식 딕셔너리 기반 (UET$, FET$) 비트맵 기반 로컬 관리
관리 뷰 DBA_DMT_USED_EXTENTS, DBA_DMT_FREE_SPACE DBA_EXTENTS, DBA_FREE_SPACE
성능 딕셔너리 업데이트 시 경합 발생 로컬 비트맵 처리로 고성능
단편화 발생 빈번함 거의 없음
현재 권장 방식 비권장 (Legacy 시스템 유지용) 기본 표준 방식

8. DBA_DMT_USED_EXTENTS를 활용한 단편화 분석

DMT 환경의 단편화 정도를 파악하려면 다음과 같은 SQL을 사용할 수 있습니다.


SELECT 
    TABLESPACE_NAME,
    COUNT(*) AS EXTENT_COUNT,
    SUM(BLOCKS) AS TOTAL_BLOCKS,
    ROUND(AVG(BLOCKS),2) AS AVG_BLOCKS
FROM 
    DBA_DMT_USED_EXTENTS
GROUP BY 
    TABLESPACE_NAME
ORDER BY 
    EXTENT_COUNT DESC;

여기서 평균 블록 수(AVG_BLOCKS)가 작고 Extent 수가 많을수록 단편화가 심하다는 의미입니다. 이 경우 COALESCE 명령이나 Reorg 작업을 수행하여 공간 효율성을 개선해야 합니다.


9. 공간 관리 및 성능 최적화 팁

  • 정기 점검: DBA_DMT_USED_EXTENTS와 DBA_DMT_FREE_SPACE를 주기적으로 비교하여 사용률을 모니터링합니다.
  • COALESCE 사용: 단편화된 Free Extent를 통합해 공간 효율을 높입니다.
  • Segment Rebuild: 대용량 테이블의 Extent 분산이 심할 경우 재구성 작업을 통해 최적화합니다.
  • LMT 전환: 가능하다면 Locally Managed Tablespace로 전환하여 성능과 관리 효율을 개선합니다.

10. 결론

DBA_DMT_USED_EXTENTS는 Dictionary Managed Tablespace 구조에서 사용 중인 Extent 정보를 실시간으로 제공하는 매우 중요한 시스템 뷰입니다. 이 뷰를 통해 DBA는 데이터 저장 구조의 세밀한 상태를 파악하고, 공간 단편화나 저장 비효율 문제를 정확히 진단할 수 있습니다. 비록 현대의 Oracle 환경에서는 LMT가 기본으로 대체되었지만, DMT 기반 시스템 유지보수나 마이그레이션 시에는 여전히 필수적인 진단 도구로 활용됩니다.


출처

  • Oracle Database Reference 19c – DBA_DMT_USED_EXTENTS View
  • Oracle Concepts – Space Management in Tablespaces
  • Oracle Administrator’s Guide – Managing Dictionary-Managed Tablespaces
728x90