Traza de las peticiones oracle 

Introducción

Esta herramienta es accesible desde cualquier pantalla de la aplicación si la base de datos empleada es Oracle™, a través del menú Útiles situado en la parte superior de la pantalla, que contiene las dos opciones siguientes:

Activación traza oracle

Mediante la función SQL_TRACE de Oracle, se activa el registro de órdenes SQL ejecutadas en un fichero, que podrán ser analizadas a continuación.

Desactivación traza

Esta función lanza el nuevo tratamiento mediante la herramienta de orable TKPROF del fichero de traza obtenido por la activación, y después muestra el resultado. Esto permite ver todas las órdenes SQL ejecutadas durante la activación.

Requisitos previos

Habilitación

El usuario debe ser autorizado para utilizar el debugger (parámetro DBG).

Limitaciones técnicas

La función no puede funcionar si un servidor de tratamiento está instalado y está activo en la máquina de la base de datos.

Interface usuario

Cuando se lanza la función, una pantalla permite capturar un conjunto de opciones:

Recuperación de los resultados

Se puede escoger el uso o no de las tres opciones siguientes

AGGREGATE

Indica si los registros idénticos deben ser reagrupados en una sola petición SQL o dejados como independientes.

WAITS

Indica si los recapitulativos deben ser registrados para los eventos de espera. Esta opción sólo está disponible desde la versión 9i

SYS

Indica si hay que mostrar el SQL recursivo ejecutado por SYS

Opciones de selección

Por defecto, las órdenes SQL están detalladas por orden cronológico, pero es posible precisar opciones de selección.

Se proponen diversas opciones de selección; la primera es la de las órdenes que correspondan al coste más importante según la selección solicitada.

El usuario puede también escoger él mismo las opciones de selección deseadas en "Parametrización selección avanzada". La ventana correspondiente le permitirá escoger todas las opciones posibles entre las siguientes (listadas por fase de tratamiento en la petición):

prscnt

Número de activaciones de análisis (PARSE)

prscpu

Tiempo CPU consumido en el análisis

prsela

Tiempo transcurrido para el análisis

prsdsk

Número de lecturas en el disco

prsqry

Número de memoria sello para una lectura coherente en el transcurso del análisis

prscu

Número de buffers durante la fase de parse

prsmis

Número de entradas en el caché "library" en el transcurso del análisis

execnt

Número de ejecuciones activadas

execpu

Tiempo CPU consumido para la ejecución

exeela

Tiempo transcurrido durante la ejecución

exedsk

Número de lecturas del disco durante la ejecución

exeqry

Número de memoria sello para una lectura coherente en el transcurso de la ejecución

execu

Número de buffers durante la fase de ejecución

exerow

Número de líneas tratadas durante la ejecución

exemis

Número de entradas en el caché "library" en el transcurso de la ejecución

fchcnt

Número de activaciones de extracción (FECTH)

fchcpu

Tiempo CPU consumido para la extracción

fchela

Tiempo transcurrido para la extracción

fchdsk

Número de lecturas en el disco en el transcurso del FETCH

fchqry

Número de memoria sello para una lectura coherente en el transcurso de la extracción

fchcu

Número de memoria sello para una lectura en el transcurso de la extracción

fchrow

Número de líneas tratadas durante la extracción

Presentación de resultados

El usuario puede escoger no mostrar en la lista más que un número determinado de órdenes SQL.

En caso de haber escogido una selección, obtendrá las "n" primeras órdenes SQL que corresponden al coste más importante de esta selección.

Explicación del resultado de tkprof

Count

Número de análisis, ejecuciones y recuperaciones efectuadas.
(verificar bien la presencia de un valor superior a 0 antes de interpretar las otras columnas). A menos de haber especificado AGGREGATE=no, TKPROF areagrupa las instrucciones SQL idénticas.

CPU

Tiempos CPU total, expresado en segundos, dedicado a las etapas de análisis de ejecución y de recuperación.

Elapsed

Tiempo total, en segundos, dedicado a todas las activaciones de análisis, de ejecución o de recuperación (aquí los waits se añaden y este tiempo incluye también las operaciones Oracle y las operaciones CPU).
Hay que verificar que no hay diferencias notables entre CPU y Elapsed

Disk

Número total de bloques de datos leídos físicamente en los ficheros de datos para las etapas de análisis, de ejecución o de recuperación.

Query

Número total de buffers extraídos en modo coherente para todas las etapas.

Current

Número total de buffers extraídos en modo actual para todas las etapas.

Rows

Número total de líneas tratadas (pero esto no afecta a las sub-peticiones)
- Select: este número se encuentra en la columna Fetch
- Insert , Update y Delete: este número se encuentra en la columna Execute

Errores

Además de los mensajes genéricos, los mensajes siguientes de error pueden aparecer durante la captura :

"Error en el acceso al servidor de la base de datos"

El acceso a la máquina de la base de datos no es posible, no hay servidor de tratamiento o no arranca.

"Error de acceso al repertorio de trazas de la base de datos"

El directorio indicado como directorio de trazas no es accesible