728x90

1. TABS 뷰란 무엇인가?
Oracle에서 TABS는 사용자가 생성한 테이블 객체에 대한 정보를 쉽게 조회할 수 있도록 제공되는 데이터 딕셔너리 뷰입니다. 정확히 말하면 USER_TABLES 뷰를 기반으로 하는 동의어(SYNONYM)이며, 사용자 스키마에 존재하는 테이블 목록을 간편하게 확인할 수 있도록 구성되어 있습니다. SQL*Plus나 Oracle 개발 도구를 사용할 때, 사용자 테이블 목록을 빠르게 조회하기 위한 목적으로 SELECT * FROM tabs;와 같이 널리 활용됩니다.
2. TABS의 구조와 주요 컬럼
TABS 뷰는 USER_TABLES를 기반으로 하며, 다음과 같은 주요 컬럼을 포함하고 있습니다.
| 컬럼명 | 설명 |
|---|---|
| TABLE_NAME | 테이블 이름 |
| TABLESPACE_NAME | 해당 테이블이 속한 테이블스페이스 |
| CLUSTER_NAME | 클러스터 이름(있을 경우) |
| IOT_TYPE | Index Organized Table 여부 |
실제로 TABS 뷰에는 훨씬 더 많은 컬럼이 존재하지만, 간단한 조회에는 위 컬럼들만 주로 사용됩니다.
3. TABS와 USER_TABLES, DBA_TABLES의 비교
아래는 Oracle에서 테이블 정보를 제공하는 대표적인 뷰들 간의 차이점입니다.
| 구분 | TABS | USER_TABLES | DBA_TABLES |
|---|---|---|---|
| 접근 범위 | 본인 소유 테이블 | 본인 소유 테이블 | 모든 사용자의 테이블 |
| 접근 권한 | 기본 사용 가능 | 기본 사용 가능 | DBA 권한 필요 |
| 상세 정보 | 간단 | 상세 | 가장 상세 |
| 대상 객체 | 테이블 중심 | 테이블 중심 | 전체 테이블 및 속성 |
4. 실무에서 TABS 뷰를 활용하는 주요 시나리오
- 초기 테이블 구조 검토: 개발자가 본인이 만든 테이블을 빠르게 확인
- 스키마 정리: 불필요한 테이블을 찾아 정리할 때 유용
- 스키마 객체 문서화: 자동화 스크립트를 통해 테이블 목록 추출
- SQL 개발 테스트: SQL 문 실행 전 해당 테이블 존재 여부 확인
간단한 스크립트 예:
-- 현재 사용자 테이블 목록 조회
SELECT * FROM tabs;
-- 테이블 이름만 정렬하여 조회
SELECT table_name FROM tabs ORDER BY table_name;
5. 뷰 확장: ALL_TABLES 및 DBA_TABLES 활용 전략
TABS 뷰는 간단하고 빠르게 사용할 수 있지만, 보다 정밀한 관리를 위해서는 ALL_TABLES 또는 DBA_TABLES와 같은 뷰와 함께 사용하는 것이 좋습니다.
- ALL_TABLES: 사용자가 접근 가능한 모든 테이블
- DBA_TABLES: 모든 사용자 테이블 포함 (DBA 권한 필요)
예제:
-- 전체 테이블 정보 확인 (접근 가능한 범위 내)
SELECT owner, table_name, tablespace_name
FROM all_tables
WHERE owner != 'SYS';
6. 테이블 메타데이터와의 연결 활용
TABS 뷰에서 추출한 테이블 이름을 기반으로 COLUMNS, CONSTRAINTS 등 다른 메타 정보와 연계하여 활용하는 것이 실무에서는 핵심입니다.
예시: 테이블별 컬럼 수 확인
SELECT table_name, COUNT(*) AS column_count
FROM user_tab_columns
GROUP BY table_name
ORDER BY column_count DESC;
7. 자동화 및 스크립트 활용 팁
TABS 뷰는 스크립트 기반의 테이블 점검 루틴에 매우 유용합니다. 예를 들어 테이블 생성 여부, 테이블 목록 로깅, 자동 문서화 등에 활용할 수 있습니다.
샘플 PL/SQL:
BEGIN
FOR t IN (SELECT table_name FROM tabs) LOOP
DBMS_OUTPUT.PUT_LINE('테이블: ' || t.table_name);
END LOOP;
END;
8. 사용 시 유의할 점
- 시스템 테이블 제외: TABS 뷰는 USER 스키마 기준이므로, SYS 객체는 포함되지 않음
- VIEW는 제외됨: 뷰 객체는 표시되지 않으며, 이는
USER_VIEWS사용 필요 - 최신 스키마 동기화 필요: 객체 변경 후에는 즉시 반영됨
출처
- Oracle Database SQL Language Reference 21c – Oracle Corporation
- Oracle DBA Essentials – Jonathan Lewis
728x90
'Database > Oracle' 카테고리의 다른 글
| [ORACLE] DUAL 테이블 완전 분석 : 단순함 속의 강력함을 이해하다 (0) | 2025.07.30 |
|---|---|
| [ORACLE] USER_HISTOGRAMS 완벽 분석 : 옵티마이저의 판단을 지배하는 통계 구조 (0) | 2025.07.30 |
| [ORACLE] SYN 시노님 완전 가이드 : 구조 사용법 실무 적용까지 (0) | 2025.07.30 |
| [ORACLE] SM$VERSION 완전 분석 : 숨겨진 시스템 테이블을 활용한 DB 진단 전략 (0) | 2025.07.30 |
| [ORACLE] SEQ 시퀀스 완전 분석 : 구조 사용법 실전 적용 사례까지 (0) | 2025.07.29 |