본문 바로가기
Database/Oracle

[ORACLE] USER_UNUSED_COL_TABS : 삭제된 컬럼 정보 조회와 정리 전략

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

USER_UNUSED_COL_TABS : 삭제된 컬럼 정보 조회와 정리 전략
[ORACLE] USER_UNUSED_COL_TABS

1. USER_UNUSED_COL_TABS란?

USER_UNUSED_COL_TABS는 Oracle 데이터베이스에서 **현재 사용자 스키마에 속한 테이블 중, UNUSED 상태로 표시된 컬럼 정보**를 조회할 수 있는 데이터 딕셔너리 뷰입니다. 오라클에서 ALTER TABLE ... SET UNUSED COLUMN 명령을 사용하면 컬럼을 실제로 제거하지 않고 “사용 불가” 상태로 표시하며, 이 상태의 컬럼은 테이블에서 접근 불가하지만 내부적으로 여전히 존재하므로 공간을 차지할 수 있습니다. 이 뷰는 이런 UNUSED 컬럼이 어느 테이블에 존재하는지 확인하고, ALTER TABLE ... DROP UNUSED COLUMNS로 실제 정리할 수 있는 기반 정보를 제공합니다.

2. 주요 컬럼 설명

컬럼명 설명
TABLE_NAME UNUSED 컬럼이 존재하는 테이블 이름
COUNT UNUSED 상태로 표시된 컬럼 개수

3. 실전 활용 예제

3.1. 사용자 테이블에서 UNUSED 컬럼이 있는 목록 확인


SELECT 
  TABLE_NAME, 
  COUNT 
FROM 
  USER_UNUSED_COL_TABS;
    

3.2. 특정 테이블에서 UNUSED 컬럼 제거


ALTER TABLE SALES_DATA DROP UNUSED COLUMNS;
    

3.3. 모든 테이블의 UNUSED 컬럼 정리 스크립트 자동 생성


SELECT 
  'ALTER TABLE ' || TABLE_NAME || ' DROP UNUSED COLUMNS;' AS cleanup_sql
FROM 
  USER_UNUSED_COL_TABS;
    

4. 관련 뷰 비교

뷰 이름 설명 역할 사용자 범위
USER_UNUSED_COL_TABS 현재 사용자 테이블 중 UNUSED 컬럼 정보 삭제 예정 컬럼 목록 확인 현재 사용자
ALL_UNUSED_COL_TABS 모든 접근 가능한 테이블의 UNUSED 컬럼 다른 사용자 테이블 포함 모든 접근 권한 사용자
DBA_UNUSED_COL_TABS 데이터베이스 전체의 UNUSED 컬럼 정보 전체 사용자의 컬럼 관리 DBA 전용

5. USER_UNUSED_COL_TABS 활용 전략

  • 테이블 정리 시점 판단: 미사용 컬럼이 남아 있는지 사전 점검
  • 스토리지 절약: UNUSED 컬럼이 실제로는 공간을 차지할 수 있으므로 제거 권장
  • 정책적 데이터 정리: 컬럼 삭제 정책 수립 시 기준 데이터로 사용 가능
  • 자동화 스크립트 생성: 정기적인 컬럼 정리 배치 작업에 활용

6. 주의사항

  • DROP UNUSED COLUMNS는 복구 불가: 실제 삭제 시 데이터 손실이 발생할 수 있으므로 신중하게 사용
  • UNUSED는 즉시 삭제가 아님: SET UNUSED는 논리적 삭제이며, DROP을 따로 수행해야 완전 제거
  • 대량 작업 시 퍼포먼스 고려: 대형 테이블에 대해 DROP UNUSED COLUMNS 실행 시 시간이 소요됨

7. 결론

USER_UNUSED_COL_TABS 뷰는 Oracle 데이터베이스에서 사용되지 않는 컬럼을 체계적으로 관리하고 테이블 구조를 정리하는 데 매우 유용한 도구입니다. 특히 **정기적인 스키마 리팩토링**, **성능 개선**, **스토리지 최적화**를 위해 반드시 점검해야 하는 대상이며, 삭제된 컬럼을 명확하게 파악한 후 완전 제거 작업을 수행함으로써 데이터베이스의 일관성과 효율성을 높일 수 있습니다.

8. 출처

728x90