V$와 DBA_로 시작하는 뷰의 차이점

장수윤·2025년 1월 13일

Oracle 데이터베이스에서 V$로 시작하는 뷰와 DBA_로 시작하는 뷰는 모두 데이터베이스 상태 및 성능 정보를 제공한다.
그러나 두 뷰는 목적과 접근 권한 측면에서 중요한 차이점이 있다.

1. V$

저장 위치

V$로 시작하는 뷰는 SGA (System Global Area) 및 컨트롤 파일에 저장된 정보를 기반으로 실시간 데이터를 제공한다.
V$ 뷰는 동적 성능 뷰로, 실시간 성능 모니터링 및 시스템 상태와 관련된 정보를 제공한다. 이 정보는 메모리에서 직접 추출되며, 데이터베이스가 동작 중일 때 실시간으로 업데이트된다.
이 뷰들은 실제로 디스크에 저장된 데이터가 아니라, 메모리 내 정보와 컨트롤 파일을 바탕으로 동작한다. 예를 들어, V$SESSION, V$SQL 등은 인스턴스의 상태, 실행 중인 쿼리 및 세션 정보 등을 제공하며, 데이터베이스 파일이 열리지 않더라도 사용할 수 있다.

운영 상태

MOUNT 상태에서 DBA 뷰는 접근할 수 없지만, V$ 뷰는 여전히 조회할 수 있다. 이는 V$ 뷰가 실시간 상태 정보를 메모리에서 추출하기 때문에, 데이터 파일이 열리지 않더라도 시스템 상태를 조회할 수 있기 때문이다.
데이터베이스가 OPEN 상태가 되면, 모든 뷰가 제대로 작동하고, V$ 뷰뿐만 아니라 DBA
뷰도 사용할 수 있게 된다.

2. DBA_

저장 위치

DBA_로 시작하는 뷰는 데이터 사전 (Data Dictionary) 정보를 제공합니다. 이 데이터 사전은 SYSTEM 테이블스페이스에 저장된 테이블과 뷰로 구성된다.
데이터베이스의 구성, 객체, 사용자 정보, 보안 정책 등과 관련된 메타데이터가 이 데이터 사전에 저장된다.
이 정보는 디스크에 저장되어 있으며, 데이터 파일이 열려 있어야 접근할 수 있습니다. 즉, MOUNT 상태에서는 데이터 파일이 열리지 않기 때문에, 데이터 사전 정보에 접근할 수 없으며, 이로 인해 DBA_ 뷰는 조회할 수 없다.

운영 상태

MOUNT 상태에서는 V$ 뷰와 같은 동적 성능 뷰는 사용할 수 있지만, DBA_ 뷰와 같은 정적 데이터는 조회할 수 없다.
OPEN 상태가 되어야만 DBA_ 뷰에 접근할 수 있으며, 데이터베이스의 메타데이터에 대한 정보를 조회할 수 있다.

3. 정리

V$ 뷰는 SGA와 컨트롤 파일에 저장된 정보를 기반으로 하며, 데이터베이스가 MOUNT 상태일 때도 조회할 수 있다.
DBA_ 뷰는 데이터 사전 (System Tablespace)에 저장된 정보를 제공하므로, 데이터 파일이 열려 있는 OPEN 상태에서만 조회 가능하다.
따라서, MOUNT 상태에서는 DBA_ 뷰를 조회할 수 없고, V$ 뷰는 조회할 수 있다.

4. 추가적인 고려 사항

V$ 뷰는 실제로 시스템의 상태를 실시간으로 반영하며, 데이터베이스 인스턴스가 실행 중인 동안 언제든지 접근할 수 있는 상태 정보다. 이런 뷰는 디스크 I/O에 의존하지 않으므로, MOUNT 상태에서 조회가 가능하다.
DBA_ 뷰는 정적 메타데이터를 제공하는 뷰로, 데이터 사전에 저장된 객체들의 상태 정보를 기반으로 한다. 이 메타데이터는 데이터베이스가 OPEN 상태일 때만 접근이 가능하므로, MOUNT 상태에서는 접근할 수 없다.
이러한 차이점이 실제 운영 환경에서 중요한 이유는 데이터베이스가 복구 중일 때, 데이터베이스의 상태 모니터링을 위해 V$ 뷰를 사용할 수 있다는 점이다. 반면에, 객체 메타데이터나 사용자 관리와 같은 작업을 수행하려면 데이터베이스가 OPEN 상태여야만 DBA_ 뷰를 사용할 수 있다.

profile
oracle db

0개의 댓글