Skip navigation

En las utilidades del SQL Wokshop (Taller SQL), encontramos la opción Database Monitor. Esta opción nos brinda un panorama de toda la base de datos, las sesiones, estadísticas del sistema, consultas SQL y operaciones más largas.

Podemos utilizar esta información para identificar consultas SQL de bajo rendimiento y comprender mejor la carga de trabajo que tiene la base de datos.

 

Hoy veremos en detalle las denominadas Top SQL ó en español SQL Principal.

Lo primero que se requiere es activar el monitoreo en el workspace Internal:

En el workspace que quiere evaluar, ingresar a SQL Workshop -> Utilities -> Database Monitor.

Ingresar las credenciales de un usuario con privilegios de DBA.

Al ejecutar Top SQL veremos las sentencias SQL que se ejecutan con mayor frecuencia, que utilizan más recursos del sistema que otras sentencias SQL o que usan recursos del sistema con más frecuencia que otras sentencias SQL.

Al dar clic en la lupa podemos ver el SQL Plan, que contiene las siguientes secciones:

 

Query Plan: contiene un plan de explicación con código de color. Tenga en cuenta que las columnas no indexadas se muestran en rojo.

SQL Text: muestra el texto completo de la declaración SQL.

 

Indexes: muestra todos los índices en la tabla en la consulta. Hay una marca de verificación cuando ese índice se usa en la consulta.

Table Columns: muestra todas las columnas en todas las tablas o vistas en la consulta.

 

Module: El esquema, aplicación y página de APEX donde se ejecuto el SQL por última vez.

CPU: Tiempo de CPU en segundos que este SQL tomó en ejecutarse la última vez.

Buffer Gets / Rows Processed: El número de bloques leídos dividido por el número de filas devuelto. Será nulo si las filas procesadas son cero.

Action: El punto en que se está ejecutando el SQL en la página de APEX.

Disk Reads: La cantidad de bloques leídos desde el disco la última vez que se ejecutó este SQL.

Buffer Gets / Executions: Número de bloques leídos dividido por el número de veces que se ejecutó una consulta. Entre más alto sea el valor indica un mayor número de lecturas de bloques por ejecución.

Executions: Número de veces que se ha ejecutado este SQL.

Rows Processed: Número de filas que este SQL devolvió la última vez que se ejecutó.

Buffer Gets: Número de bloques en memoria a los que accedió este SQL la última vez que se ejecutó.

 

Nota: Las imágenes se presentaron en Inglés porque se entiende mejor que la traducción realizada en Español.

Dentro de las utilidades de APEX se encuentra el Diccionario de Atributos.

Hoy veremos como sacarle partido a esta opción, para esto voy a crear una aplicación de cero e ir al diccionario de atributos.

En el diccionario podemos añadir elementos y columnas de los reportes. En este ejemplo veremos la aplicabilidad en los elementos de una página, sin embargo el funcionamiento es el mismo para las columnas.

Allí crear una nueva entrada con el nombre EJEMPLO y dos sinónimos:

- EXAMPLE

- TEST

 

Crear una página y tres elementos con los nombre: EJEMPLO,EXAMPLE y TEST.

Al volver al diccionario, tenemos dos opciones:

1. Actualizar la página con los atributos del diccionario.

2. Actualizar el diccionario con los atributos de la página.

 

Siguiendo la primera opción,

Definir que elementos y que atributos se actualizarán:

Al ejecutar la página efectivamente utiliza los atributos indicados en el diccionario.

Para la segunda opción, realizar modificaciones sobre el elemento EJEMPLO de la página creada. Como los tres elementos comparten los mismos atributos, al modificar el principal los demás heredarán estos cambios.  Actualizar el diccionario para guardar los cambios realizados en la aplicación.

Al ejecutar la página se ven los cambios realizados en todos los elementos.

En el caso de que la aplicación ya tenga todos los elementos, añadir estos elementos al diccionario. En este punto, ya será posible hacer modificaciones sobre el diccionario y actualizar fácilmente todos los elementos o columnas de las páginas de la aplicación que se hayan incluido en el diccionario.

Es muy interesante utilizar esta utilidad porque nos asegura unificación en los atributos de los elementos y columnas utilizados a lo largo de la aplicación, así como también nos ahorra mucho tiempo cuando se requiera hacer algún cambio sobre los elementos.