본문 바로가기
Database/Oracle

[ORACLE] ALL_TABLES()로 테이블 정보 조회하는 방법 정리

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

 

오라클 ALL_TABLES()로 테이블 정보 조회하는 방법 정리
[Oracle] ALL_TABLES

 

Oracle Database를 사용하는 개발자나 DBA라면 ALL_TABLES 뷰에 대해 반드시 이해하고 있어야 합니다. 이 뷰는 데이터베이스 내에 존재하는 테이블의 메타데이터를 조회할 수 있는 중요한 시스템 뷰입니다. 특히 접근 권한이 부여된 테이블에 대한 정보를 제공하며, 실무에서 자주 사용되는 쿼리 작성의 핵심이 됩니다.

1. ALL_TABLES란 무엇인가?

ALL_TABLES는 Oracle Database의 사전 정의된 데이터 딕셔너리 뷰 중 하나로, 사용자가 접근 가능한 모든 테이블에 대한 메타 정보를 제공합니다. 이 뷰는 사용자 자신의 테이블뿐만 아니라 다른 사용자에게 권한이 부여된 테이블도 포함합니다.

1.1 기본 정의


SELECT * FROM ALL_TABLES;
  

위 쿼리는 사용자가 접근 가능한 모든 테이블의 정보를 반환합니다. 그러나 실무에서는 필요한 컬럼만 선택하여 사용하는 것이 일반적입니다.

2. 주요 컬럼 설명

ALL_TABLES 뷰에는 다양한 컬럼이 있지만, 아래는 자주 사용되는 주요 컬럼입니다:

컬럼명 설명
OWNER 테이블을 소유한 스키마의 사용자 이름
TABLE_NAME 테이블 이름
TABLESPACE_NAME 테이블이 속한 테이블스페이스 이름
NUM_ROWS 테이블에 저장된 행의 수 (통계 정보 필요)
BLOCKS 테이블이 사용하는 블록 수
LAST_ANALYZED 통계가 마지막으로 수집된 날짜

3. ALL_TABLES vs USER_TABLES vs DBA_TABLES

Oracle에서는 유사한 목적의 세 가지 뷰가 존재합니다. 다음 표를 통해 각 뷰의 차이점을 비교할 수 있습니다:

항목 USER_TABLES ALL_TABLES DBA_TABLES
대상 자신이 소유한 테이블 접근 권한이 있는 모든 테이블 모든 테이블 (DBA만 사용 가능)
접근 권한 일반 사용자 일반 사용자 DBA 권한 필요
사용 목적 개인 소유 테이블 확인 협업 시 타인 테이블 확인 시스템 전체 테이블 관리

4. 실무에서의 활용 예제

4.1 특정 스키마의 테이블 목록 조회


SELECT TABLE_NAME
FROM ALL_TABLES
WHERE OWNER = 'HR';
  

4.2 최근 통계 수집되지 않은 테이블 찾기


SELECT OWNER, TABLE_NAME, LAST_ANALYZED
FROM ALL_TABLES
WHERE LAST_ANALYZED IS NULL;
  

4.3 테이블별 행 수 및 블록 수 확인


SELECT TABLE_NAME, NUM_ROWS, BLOCKS
FROM ALL_TABLES
WHERE OWNER = 'SALES';
  

5. 성능 팁 및 주의사항

  • NUM_ROWS 값은 자동으로 업데이트되지 않으며, ANALYZEDBMS_STATS 패키지를 사용하여 갱신해야 정확한 값을 얻을 수 있습니다.
  • ALL_TABLES 조회 시 필터 조건 없이 사용할 경우 수천 개의 테이블이 조회되어 성능 저하를 유발할 수 있습니다.
  • 테이블의 실제 크기(디스크 사용량)는 DBA_SEGMENTS 뷰를 병행하여 확인하는 것이 좋습니다.

6. 관련 시스템 뷰 참고

  • ALL_TAB_COLUMNS: 각 테이블의 컬럼 정보
  • ALL_CONSTRAINTS: 제약조건 정보
  • ALL_INDEXES: 인덱스 정보
  • ALL_TAB_PRIVS: 테이블 권한 정보

7. 결론

ALL_TABLES는 단순한 정보 제공 뷰가 아니라, Oracle 데이터베이스의 구조를 파악하고 최적화된 SQL 작성을 위한 핵심 도구입니다. 이를 통해 자신의 쿼리 성능을 높이고, 보다 효율적인 데이터 분석 환경을 구축할 수 있습니다. Oracle DB를 다루는 모든 실무자에게 필수적인 지식이므로, 위 내용을 바탕으로 직접 쿼리를 작성하며 익숙해지는 것을 추천합니다.

8. 참고자료

 

728x90