INGRESAR

REGISTRARSE
Buscador

Tablas y vistas del diccionario de datos en oracle

2024-04-05

La relación entre la estructura física y la estructura lógica de una Base de Datos Oracle es mantenida y documentada en el Diccionario de Datos, que contiene los metadatos que describe a la Base de Datos entera. Esta información se guarda en tablas bases y vistas del sistema.

Las tablas bases almacenan información de la base de datos que sólo Oracle puede modificar; Los usuarios rara vez pueden acceder a estas tablas porque están generalmente normalizadas o encriptadas.

Las vistas del sistema permiten decodificar los datos de las tablas base en información útil; pues se crean a partir de cláusulas WHERE que simplifican la información. Las vistas del sistema suelen almacenar los nombres y descripción de todos los objetos del diccionario de datos. Algunas vistas son accesibles para todos los usuarios de la base de datos, mientras otras cuentan con un acceso limitado a los administradores.

Los diccionarios de datos contienen juegos de vistas. En muchos casos, un juego se compone de tres vistas que contienen información similar y que se diferencien entre sí por sus prefijos. Por ejemplo, hay una vista denominada USER_OBJECTS, otra ALL_OBJECTS y una tercera DBA_OBJECTS.

Estas tres vistas contienen información similar sobre los objetos de la base de datos, excepto en que el ámbito es diferente. USER_OBJECTS contiene información sobre objetos que son de su propiedad o que ha creado. ALL_OBJECTS contiene información sobre todos los objetos a los que tiene acceso. DBA_OBJECTS contiene información de todos los objetos que son propiedad de todos los usuarios. Para las vistas que tienen los prefijos ALL o DBA, suele existir una columna adicional en la vista denominada OWNER para identificar de quién es propiedad el objeto.

También hay un juego de vistas con el prefijo V$. Estas vistas son denominadas vistas de rendimiento dinámico y contienen información sobre el rendimiento. Las tablas dinámicas de rendimiento no deben ser accesibles para la mayoría de los usuarios. Sin embargo, los DBA pueden consultar y crear vistas en las tablas y otorgar acceso a esas vistas a otros usuarios.

Vistas de rendimiento dinámico.

Las vistas de rendimiento dinámico, también conocidas como Fixed Views (Vistas fijas), se actualizan continuamente mientras una base de datos está abierta y en uso, y su contenido se relaciona principalmente con el rendimiento.

Estas vistas proporcionan datos sobre estructuras físicas y lógicas de la base de datos. Se puede consultar información en ellas, pero un usuario nunca podrá actualizarlas ni modificarlas.

Estas vistas se pueden identificar con relativa facilidad porque su nombre comienza con los prefijos V$ y GV$. Por cada vista V$ existe una vista GV$ del mismo nombre.

Las vistas V$ son para almacenar los datos de la instancia local y que las GV$ son para almacenar los datos de todas las instancias de un clúster, es decir si un sistema clúster tiene 5 nodos con 5 instancias, las vista GV$ tendrá los datos de las 5 instancias. La diferencia del prefijo es que las vistas GV$ contiene siempre una columna adicional a su equivalente V$ que hace referencia al ID de la instancia de base de datos.

La vista V$FIXED_TABLE.

Una vista fija muy útil es la vista V$FIXED_TABLE. Es una vista muy simple que nos permite conocer todos los nombres de las vistas y tablas del sistema.

Cuenta con 5 columnas:

  • NAME: Nombre del objeto.
  • OBJECT_ID: Identificador del objeto.
  • TYPE: Tipo de objeto, sólo admite 2 opciones TABLE o VIEW.
  • TABLE_NUM: Número que identifica a la tabla en los casos que el TYPE es de tipo TABLE.
  • CON_ID: Se refiere al identificador del contenedor del objeto que puede ser el contenedor global de base de datos (CDB), el contenedor root u otro contenedor creado.

Consultas de interés para los DBA mediante vistas del sistema.

Consulta que muestra el estado de la base de datos:

  • select * from v$instance;

Consulta que muestra si la base de datos está abierta:

  • select status from v$instance;

Consulta que muestra los parámetros generales de Oracle:

  • select * from v$system_parameter;

Consulta que muestra la versión de Oracle:

  • select value from v$system_parameter where name = "compatible ";

Consulta que muestra la ubicación y nombre del fichero spfile:

  • select value from v$system_parameter where name = "spfile ";

Consulta que muestra la ubicación y número de ficheros de control:

  • select value from v$system_parameter where name = "control_files " Consulta que muestra el nombre de la base de datos
  • select value from v$system_parameter where name = "db_name ";

Consulta que muestra las conexiones actuales a Oracle Para visualizarla es necesario entrar con privilegios de administrador:

  • select osuser, username, machine, program from v$session order by osuser;

Consulta que muestra los usuarios de Oracle conectados y el número de sesiones por usuario:

  • select username Usuario_Oracle, count(username) Numero_Sesiones from v$session group by username order by Numero_Sesiones desc;

Consulta que muestra los propietarios de objetos y número de objetos por propietario:

  • select owner, count(owner) Numero from dba_objects group by owner order by Numero desc;