본문 바로가기
Database/Oracle

[ORACLE] ALL_OBJECTS 뷰 완전 정복 : 객체 관리와 분석의 핵심

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

오라클 ALL_OBJECTS 뷰 완전 정복: 객체 관리와 분석의 핵심
[Oracle] ALL_OBJECTS

 

Oracle Database에서 테이블, 뷰, 인덱스, 트리거, 프로시저, 패키지 등 다양한 객체(Object)는 데이터베이스의 구성 요소로 사용됩니다. 이러한 객체들의 상태, 생성 시점, 변경 시점 등을 한 번에 확인할 수 있도록 Oracle은 ALL_OBJECTS라는 시스템 뷰를 제공합니다. 이 글에서는 ALL_OBJECTS 뷰의 구조실무 활용 방법, 그리고 유사 뷰들과의 비교를 통해 Oracle 개발자 및 DBA들이 효율적으로 데이터베이스를 관리할 수 있는 전략을 제시합니다.

1. ALL_OBJECTS란 무엇인가?

ALL_OBJECTS는 사용자가 접근 가능한 모든 객체에 대한 메타데이터 정보를 제공하는 Oracle의 데이터 딕셔너리 뷰입니다. 즉, 해당 사용자가 직접 소유하거나, 권한이 부여된 스키마 내의 테이블, 뷰, 시노님, 패키지, 트리거, 인덱스 등 모든 객체의 정의 정보를 확인할 수 있습니다.

2. 주요 컬럼 설명

아래는 ALL_OBJECTS 뷰에서 자주 활용되는 주요 컬럼입니다:

컬럼명 설명
OWNER 객체를 소유한 사용자
OBJECT_NAME 객체의 이름
OBJECT_ID 내부적으로 부여되는 객체 ID
OBJECT_TYPE 객체의 유형 (TABLE, VIEW, PROCEDURE 등)
CREATED 객체가 생성된 날짜
LAST_DDL_TIME 마지막 DDL(정의어) 변경 시각
STATUS VALID 또는 INVALID 상태
TEMPORARY 임시 객체 여부
GENERATED 시스템에 의해 생성된 객체 여부

3. USER_OBJECTS, ALL_OBJECTS, DBA_OBJECTS 비교

뷰 이름 조회 대상 사용 권한
USER_OBJECTS 자신이 소유한 객체만 일반 사용자
ALL_OBJECTS 자신이 접근 가능한 모든 객체 일반 사용자
DBA_OBJECTS 데이터베이스 전체 객체 DBA 권한 필요

4. 실무 활용 예제

4.1 최근 생성된 객체 10개 조회


SELECT OBJECT_NAME, OBJECT_TYPE, CREATED
FROM ALL_OBJECTS
ORDER BY CREATED DESC
FETCH FIRST 10 ROWS ONLY;
  

4.2 INVALID 상태의 객체 조회


SELECT OBJECT_NAME, OBJECT_TYPE, STATUS
FROM ALL_OBJECTS
WHERE STATUS = 'INVALID';
  

4.3 특정 스키마의 프로시저만 조회


SELECT OBJECT_NAME
FROM ALL_OBJECTS
WHERE OWNER = 'HR'
  AND OBJECT_TYPE = 'PROCEDURE';
  

4.4 오늘 변경된 객체 찾기


SELECT OBJECT_NAME, OBJECT_TYPE, LAST_DDL_TIME
FROM ALL_OBJECTS
WHERE TRUNC(LAST_DDL_TIME) = TRUNC(SYSDATE);
  

5. 성능 및 관리적 활용 전략

  • 정기 점검: INVALID 상태의 객체는 종속성 문제나 컴파일 오류를 유발하므로 정기적으로 점검해야 합니다.
  • 데이터베이스 감사: LAST_DDL_TIME을 기준으로 객체 변경 이력을 관리할 수 있습니다.
  • 스키마 분석: OWNER 기준으로 조회하여 사용자 또는 어플리케이션의 객체 구성 상태를 진단할 수 있습니다.
  • 자동화 도구 연동: ALL_OBJECTS를 통해 DevOps 또는 모니터링 도구와 연계한 자동화가 가능합니다.

6. 객체 유형별 활용 목적

OBJECT_TYPE 설명 활용 사례
TABLE 데이터 저장을 위한 기본 구조 정형 데이터 저장소
VIEW SELECT 기반의 가상 테이블 복잡한 쿼리 캡슐화
INDEX 검색 성능 최적화 빠른 WHERE 조건 탐색
TRIGGER 이벤트 기반 자동 실행 코드 감사 로그, 자동 계산
PROCEDURE 독립 실행 가능한 PL/SQL 블록 업무 로직 구현
PACKAGE 함수/프로시저 묶음 모듈화된 코드 관리

7. 기타 관련 뷰

  • ALL_SOURCE: 객체의 소스 코드 확인
  • ALL_DEPENDENCIES: 객체 간의 의존성 분석
  • ALL_ERRORS: INVALID 객체의 에러 상세 정보

8. 결론

Oracle의 ALL_OBJECTS 뷰는 데이터베이스의 전반적인 객체를 한눈에 파악하고 관리하는 데 필수적인 도구입니다. 개발자와 DBA는 이 뷰를 통해 객체 생성/변경 이력을 추적하고, 문제 발생 시 신속하게 원인을 분석할 수 있습니다. 객체 상태와 구조를 명확히 이해하고자 할 때 ALL_OBJECTS는 가장 강력한 출발점이 될 수 있습니다.

9. 참고자료

 

728x90