728x90

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. 참고자료
- Oracle Database 21c Reference Manual: https://docs.oracle.com/en/database/
- 실무 경험 기반 Oracle 운영 문서
- Oracle SQL Tuning Handbook
728x90
'Database > Oracle' 카테고리의 다른 글
| [ORACLE] ALL_TAB_PRIVS 뷰 완벽 가이드 : 테이블 권한 조회 및 실무 활용법 (0) | 2025.06.15 |
|---|---|
| [ORACLE] ALL_SOURCE 뷰 완벽 가이드 : PL/SQL 소스코드 관리 (0) | 2025.06.15 |
| [ORACLE] ALL_SYNONYMS 뷰 완벽 해설과 실무 활용법 (0) | 2025.06.15 |
| [ORACLE] ALL_TRIGGERS 뷰로 트리거 관리와 분석 완전 정복 (0) | 2025.06.15 |
| [ORACLE] ALL_VIEWS 뷰 사용법과 실무 활용 전략 (0) | 2025.06.15 |