본문 바로가기
Database/Oracle

[ORACLE] ALL_UNUSED_COL_TABS 뷰 심층 분석과 실무 활용 전략

by Papa Martino V 2025. 7. 5.
728x90

ALL_UNUSED_COL_TABS 뷰 심층 분석과 실무 활용 전략
[ORACLE] ALL_UNUSED_COL_TABS

 

Oracle 데이터베이스를 운영하다 보면, 설계 변경이나 업무 프로세스 개편으로 인해 사용되지 않는 컬럼이 테이블에 남아 있는 경우가 많습니다. 이러한 컬럼은 불필요한 저장 공간을 차지할 뿐만 아니라, 관리와 성능 측면에서도 부담을 줍니다. 이때 사용되지 않는 컬럼 정보를 확인할 때 유용한 뷰가 바로 ALL_UNUSED_COL_TABS입니다.

ALL_UNUSED_COL_TABS 뷰란?

ALL_UNUSED_COL_TABS 뷰는 사용자가 접근할 수 있는 테이블 중, 현재 삭제 예약(DROP COLUMN DEFERRED) 상태인 컬럼이 포함된 테이블 정보를 제공합니다. 즉, 물리적으로 완전히 제거되지는 않았지만 사용되지 않는 컬럼이 존재하는 테이블을 한눈에 파악할 수 있는 관리 도구입니다.

왜 중요한가?

Oracle에서는 컬럼 삭제 시 즉시 물리적으로 제거하지 않고, 먼저 사용 불가 상태로 표시한 뒤 이후에 실제로 공간을 회수할 수 있도록 설계되어 있습니다. 이 과정을 모니터링하고 관리하지 않으면, 예상치 못한 공간 부족과 테이블 성능 저하를 초래할 수 있습니다. ALL_UNUSED_COL_TABS 뷰를 활용하면 이런 위험을 사전에 방지할 수 있습니다.

주요 컬럼 설명

컬럼명 설명
OWNER 테이블 소유자
TABLE_NAME 테이블 이름
COUNT 사용되지 않는 컬럼 개수

활용 예제

예를 들어, 특정 스키마에서 사용되지 않는 컬럼이 포함된 테이블 목록을 확인하려면 다음과 같은 쿼리를 사용할 수 있습니다.

SELECT TABLE_NAME, COUNT
FROM ALL_UNUSED_COL_TABS
WHERE OWNER = 'HR';
  

이 결과를 기반으로 불필요한 컬럼을 영구 삭제(DROP UNUSED COLUMNS)하거나 테이블 재구성을 계획할 수 있습니다.

비슷한 뷰와의 비교

항목 ALL_TAB_COLUMNS ALL_UNUSED_COL_TABS
정보 범위 모든 컬럼 정의 정보 사용되지 않는 컬럼이 포함된 테이블
활용 목적 컬럼 메타 정보 확인 불필요한 컬럼 관리 및 공간 최적화
세부 수준 컬럼 단위 테이블 단위 요약

실무 활용 전략

  • 공간 최적화: ALL_UNUSED_COL_TABS 뷰를 활용해 삭제 예약 컬럼을 주기적으로 점검하고, DROP UNUSED COLUMNS 명령어를 실행하여 물리적 공간을 확보합니다.
  • 테이블 재구성 계획: 사용되지 않는 컬럼이 많은 테이블의 경우, 재구성을 통해 테이블 블록을 재정렬하고 I/O 효율성을 높일 수 있습니다.
  • 정기 감사 및 문서화: 관리 보고서나 감사 리포트 작성 시, 사용되지 않는 컬럼 현황을 포함하여 데이터베이스의 투명성을 높입니다.

활용 시 주의사항

  • 컬럼을 물리적으로 삭제하기 전에, 애플리케이션과 의존성 분석을 철저히 수행해야 합니다.
  • DROP UNUSED COLUMNS 명령어는 DDL 작업으로 테이블 잠금과 성능 저하를 초래할 수 있으므로, 가급적 트래픽이 적은 시간대에 수행해야 합니다.
  • Oracle 버전과 패치 상태에 따라 동작 방식과 컬럼 구성이 달라질 수 있으니 최신 문서를 참고해야 합니다.

결론

ALL_UNUSED_COL_TABS 뷰는 테이블 내 사용되지 않는 컬럼을 체계적으로 관리하고, 데이터베이스 공간 최적화와 성능 향상에 기여하는 필수 도구입니다. 이를 활용하면 불필요한 데이터를 제거하고, 보다 깨끗하고 효율적인 데이터베이스 환경을 구축할 수 있습니다. DBA 및 시스템 운영 담당자라면 반드시 숙지하고 활용해야 할 뷰라고 할 수 있습니다.

 

출처: Oracle Database Administrator's Guide, Oracle 19c/21c Reference Manual, DBA 실무 경험 기반 분석 자료.

728x90