본문 바로가기
Database/Oracle

[ORACLE] USER_VIEWS 뷰로 사용자 정의 뷰 SQL 추적 및 최적화하기

by Papa Martino V 2025. 8. 8.
728x90

USER_VIEWS 뷰로 사용자 정의 뷰 SQL 추적 및 최적화하기
[ORACLE] USER_VIEWS

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 데이터베이스에서 사용자 정의 뷰의 존재를 파악하고, 뷰 정의를 직접 추적하거나 문서화, 리팩토링할 때 매우 유용한 뷰입니다. 특히 데이터베이스 설계자나 성능 튜닝 담당자에게는 필수적인 메타 정보입니다.

참고 자료

728x90