Queremos enseñarte la mejor información que hallamos por todo internet. Deseamos que te sea útil y si deseas comentarnos cualquier detalle que nos pueda ayudar a crecer hazlo con libertad.
Solución:
La forma más fácil de pensarlo es:
-
DBA_ / USER_ / ALL_
las vistas se basan en el diccionario de datos; no están disponibles si la base de datos no está montada y abierta. -
V$
las vistas tienden a ejecutarse en la instancia y, por lo tanto, pueden estar disponibles si la base de datos no está montada o no está montada y abierta, según la naturaleza de la vista.
Usando tu ejemplo:
V$TABLESPACE
es una vista sobreX$KCCTS
que es una estructura de memoria interna.DBA_TABLESPACES
es una vista en la tabla del diccionario de datosSYS.TS$
Además de las diferencias que Adam Musch enumeró, hay algunas diferencias más entre las vistas dba_ y las vistas v$ que vale la pena mencionar, ya que son posibles trampas si no está al tanto de estas diferencias:
1) La mayoría (pero no todas) las vistas v$ no son técnicamente vistas en absoluto, pero son sinónimos de vistas v_$. Esta es una distinción importante ya que no puede otorgar/revocar permisos contra sinónimos:
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) Puede ejecutar consultas de flashback contra dba_views. Sin embargo, la ejecución de consultas flashback en vistas de v$ devuelve datos actuales (documentos 12.1 sobre el uso de la tecnología Flashback de Oracle):
No puede recuperar datos anteriores desde una vista de rendimiento dinámico (V$). Una consulta en dicha vista devuelve datos actuales.
Puede realizar consultas sobre datos pasados en static vistas del diccionario de datos, como *_TABLES.
Como señaló Adam Musch, las vistas v$ se ejecutan directamente en la instancia, mientras que las vistas dba_ se ejecutan en el diccionario de datos. Una vez que comprenda eso, tiene sentido por qué existe esta limitación. Aún así, yo De Verdad Desearía que la consulta de flashback contra las vistas de v $ arrojara un error en lugar de no funcionar silenciosamente, ya que este problema puede pasar desapercibido durante bastante tiempo …
Finalizando este artículo puedes encontrar los comentarios de otros gestores de proyectos, tú incluso tienes el poder mostrar el tuyo si lo crees conveniente.