본문 바로가기
Database/Oracle

[ORACLE] ALL_ALL_TABLES 뷰 완벽 해설 및 실무 활용 가이드

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

오라클 ALL_ALL_TABLES 뷰 완벽 해설 및 실무 활용 가이드
[Oracle] ALL_ALL_TABLES

 

Oracle 데이터베이스는 방대한 양의 메타데이터를 다양한 시스템 뷰를 통해 제공합니다. 그중 ALL_ALL_TABLES 뷰는 현재 사용자(User)가 접근 가능한 모든 테이블의 정보를 확인할 수 있는 매우 유용한 데이터 딕셔너리 뷰입니다.

1. ALL_ALL_TABLES란?

ALL_ALL_TABLES는 오라클에서 제공하는 데이터 딕셔너리 뷰 중 하나로, 사용자가 직접 소유하거나, 권한이 부여된 테이블들의 구조 및 속성 정보를 제공합니다. 즉, 단순히 사용자 소유의 테이블만 보여주는 USER_ALL_TABLES와 달리, 이 뷰는 권한을 통해 접근할 수 있는 타 사용자의 테이블도 함께 보여줍니다.

2. 주요 컬럼 설명

ALL_ALL_TABLES 뷰는 수십 개의 컬럼을 제공하지만, 실무에서 자주 사용하는 주요 컬럼은 다음과 같습니다.

컬럼명 설명
OWNER 테이블 소유자
TABLE_NAME 테이블 이름
TABLESPACE_NAME 테이블이 속한 테이블스페이스
CLUSTER_NAME 클러스터 테이블인 경우 클러스터 이름
IOT_TYPE 인덱스 조직 테이블인지 여부
NESTED 중첩 테이블 여부
TEMPORARY 임시 테이블 여부
DURATION 임시 테이블 유지 시간

3. 실무에서의 활용 사례

3.1 사용자 접근 가능한 모든 테이블 조회

SELECT OWNER, TABLE_NAME FROM ALL_ALL_TABLES;

이 쿼리는 현재 접속한 사용자가 접근 가능한 모든 테이블의 소유자와 이름을 나열합니다.

3.2 특정 테이블의 저장 위치 파악


SELECT TABLE_NAME, TABLESPACE_NAME
FROM ALL_ALL_TABLES
WHERE TABLE_NAME = 'EMP';

테이블이 저장된 테이블스페이스를 파악해 성능 튜닝이나 디스크 공간 분석에 활용할 수 있습니다.

3.3 인덱스 조직 테이블 확인


SELECT TABLE_NAME, IOT_TYPE
FROM ALL_ALL_TABLES
WHERE IOT_TYPE IS NOT NULL;

특정 테이블이 인덱스 조직 방식인지 확인하여 데이터 정렬이나 조회 최적화를 검토할 수 있습니다.

4. 관련 뷰와의 비교

ALL_ALL_TABLES는 다양한 유사 뷰들과 비교해 실무에서 어떤 점이 다른지 이해하는 것이 중요합니다.

뷰 이름 포함 대상 접근 권한 용도
USER_ALL_TABLES 자신이 소유한 테이블 본인만 사용자 전용 정보 조회
ALL_ALL_TABLES 자신이 접근 가능한 모든 테이블 권한 기반 권한 기반 전체 조회
DBA_ALL_TABLES 모든 사용자 테이블 DBA만 전체 DB 모니터링

5. 주의사항 및 성능 팁

  • ALL_ALL_TABLES는 권한이 없는 테이블은 보여주지 않기 때문에, 누락된 테이블이 있다면 권한을 재확인해야 합니다.
  • 대규모 DB에서는 뷰 조회 시 WHERE 조건을 명확히 지정하지 않으면 성능 이슈가 발생할 수 있습니다.
  • 테이블 이름은 대소문자를 구분하므로 검색 시 UPPER 또는 LIKE 연산자를 적절히 활용하세요.

6. 결론

ALL_ALL_TABLES는 Oracle DB에서 권한 기반으로 테이블 구조를 종합적으로 분석할 수 있는 중요한 뷰입니다. 특히 개발자나 DBA 입장에서, 이 뷰를 통해 복잡한 권한 체계 아래에서도 원하는 테이블 정보를 효과적으로 검색하고 분석할 수 있습니다. 실무에서 자주 쓰이는 SQL 스크립트와 함께 정확한 컬럼 이해를 바탕으로 활용도를 높이는 것이 중요합니다.

7. 출처

728x90