av $ view와 dba_ equivalent의 차이점은 무엇입니까?


9

v$뷰와 해당 뷰 의 일반적인 차이점은 무엇입니까 dba_? 예를 들어 v$tablespace및을 사용하십시오 dba_tablespaces.

답변:


13

그것을 생각하는 가장 쉬운 방법은 다음과 같습니다.

  • DBA_ / USER_ / ALL_ 뷰는 데이터 딕셔너리를 기반으로합니다. 데이터베이스가 마운트되어 열려 있지 않으면 사용할 수 없습니다.

  • V$ 뷰는 인스턴스에 대해 실행되는 경향이 있으므로 뷰의 특성에 따라 데이터베이스가 마운트되지 않았거나 마운트 및 열려 있지 않은 경우 사용 가능할 수 있습니다.

귀하의 예를 사용하여 :

  • V$TABLESPACEX$KCCTS내부 메모리 구조 인 에 대한보기입니다 .
  • DBA_TABLESPACES 데이터 사전 테이블의 뷰입니다. SYS.TS$

3

Adam Musch가 나열한 차이점 외에도 dba_보기와 v $보기 사이에는 몇 가지 차이점이 있습니다.

1) 대부분의 v $ 뷰는 기술적으로 전혀 뷰가 아니지만 v_ $ 뷰와 동의어입니다. 동의어에 대한 권한을 부여하거나 취소 할 수 없으므로 이는 중요한 차이점입니다.

sqlplus / as sysdba

grant select on v$tablespace to user1;
   SQL Error: ORA-02030: can only select from fixed tables/views

select table_name from dba_synonyms where synonym_name = 'V$TABLESPACE';
   TABLE_NAME
   -------------
   V_$TABLESPACE

grant select on V_$TABLESPACE to user1;
   grant succeeded.

2) dba_ 뷰에 대해 플래시백 쿼리를 실행할 수 있습니다. 그러나 v $ 뷰에 대해 플래시백 쿼리를 실행하면 현재 데이터 (Oracle Flashback Technology 사용의 12.1 문서)가 반환됩니다 .

동적 성능 (V $)보기에서 과거 데이터를 검색 할 수 없습니다. 이러한 뷰에 대한 쿼리는 현재 데이터를 반환합니다.

* _TABLES와 같은 정적 데이터 사전보기에서 과거 데이터에 대한 쿼리를 수행 할 수 있습니다.

Adam Musch가 지적했듯이 v $ 뷰는 인스턴스에 대해 직접 실행되는 반면 dba_ 뷰는 데이터 사전에 대해 실행됩니다. 일단 당신이 그것을 이해하면, 왜이 제한이 존재하는지 이해가됩니다. 아직하지만, 나는 정말 조용히 꽤 오랫동안 주목 남아있을 수있는이 잡았다대로 작동하지 않고 오류를 반환 V $ 뷰에 대한 플래시백 쿼리를 바랍니다 ...

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.