728x90

1. USER_VIEWS란?
USER_VIEWS는 Oracle 데이터베이스에서 현재 로그인된 사용자 스키마에 생성된 모든 뷰(View)에 대한 정보를 제공하는 데이터 딕셔너리 뷰입니다. 이 뷰는 뷰 이름, 정의된 SQL 문장, 텍스트 길이 등의 정보를 포함하며, SQL 추적, 뷰 재정의, 데이터 모델 점검 등에서 매우 유용합니다.
2. 주요 컬럼 설명
| 컬럼명 | 설명 |
|---|---|
| VIEW_NAME | 사용자 정의 뷰의 이름 |
| TEXT | 뷰를 정의하는 SELECT SQL 문 (최대 4000자) |
| TEXT_LENGTH | VIEW 정의문의 문자 수 |
3. 실전 활용 예제
-- 내 스키마의 모든 뷰 목록 조회
SELECT VIEW_NAME, TEXT_LENGTH
FROM USER_VIEWS
ORDER BY VIEW_NAME;
-- 특정 뷰의 SQL 정의문 조회
SELECT TEXT
FROM USER_VIEWS
WHERE VIEW_NAME = 'EMPLOYEE_SALARY_VIEW';
뷰 정의가 복잡하거나 너무 긴 경우, 일부 클라이언트에서는 TEXT 열이 잘리는 경우도 있으므로 주의가 필요합니다.
4. 뷰 정의문 재구성 팁
- DDL 재생성: SQL Developer 또는
DBMS_METADATA.GET_DDL을 활용하면 더 긴 뷰 정의문도 복구 가능 - 의존 객체 추적: 뷰가 참조하는 테이블이나 함수는
USER_DEPENDENCIES뷰를 통해 분석 - 성능 진단: 뷰 내부 쿼리에 대한 Explain Plan 분석을 통해 병목 여부 확인
5. 관련 뷰 비교
| 뷰 이름 | 설명 | 범위 |
|---|---|---|
| USER_VIEWS | 사용자 정의 뷰 정보 | 본인 스키마 |
| ALL_VIEWS | 접근 가능한 모든 뷰 정보 | 타 사용자 포함 |
| DBA_VIEWS | DB 전체 뷰 정보 | DBA 권한 필요 |
6. 주의사항 및 최적화 전략
- TEXT 컬럼은 4000자 제한이 있으며, 복잡한 뷰는 잘릴 수 있음
- VIEW 내부 쿼리가 느린 경우 직접 실행하여 성능 측정 필수
- 주기적으로 뷰 재점검하여 무의미한 중첩 뷰 제거
7. 결론
USER_VIEWS는 Oracle 데이터베이스에서 사용자 정의 뷰의 존재를 파악하고, 뷰 정의를 직접 추적하거나 문서화, 리팩토링할 때 매우 유용한 뷰입니다. 특히 데이터베이스 설계자나 성능 튜닝 담당자에게는 필수적인 메타 정보입니다.
참고 자료
- Oracle® Database SQL Language Reference 21c
- Oracle® Database Data Dictionary Reference
- Oracle Help Center: https://docs.oracle.com/en/database/
728x90
'Database > Oracle' 카테고리의 다른 글
| [ORACLE] USER_TAB_PRIVS : 오브젝트 권한 관리의 핵심 뷰 완전 정복 (0) | 2025.08.09 |
|---|---|
| [ORACLE] USER_TAB_PARTITIONS : 오라클 파티셔닝 정보를 꿰뚫는 전략 가이드 (0) | 2025.08.09 |
| [ORACLE] USER_USERS 뷰로 사용자 계정 정보 및 보안 정책 완벽 파악하기 (0) | 2025.08.08 |
| [ORACLE] USER_TAB_MODIFICATIONS 뷰로 통계 갱신 타이밍 완벽 제어하기 (0) | 2025.08.08 |
| [ORACLE] USER_TAB_HISTOGRAMS 뷰로 SQL 옵티마이저 힌트 최적화하기 (0) | 2025.08.08 |