Vamos a realizar un pequeño análisis de una consulta que se lanza de manera mensual.
Lo primero que vamos a hacer es generar el tkprof para poder determinar qué está sucediendo internamente en el tiempo de ejecución de cada uno de ellos.
Analizando el tkproff vemos una consulta con un índices altos en accesos a los datos y con una ejecución en tiempo un poco alta (no llega al minuto)
Analizando en detalle el tkproff, concretamente el árbol de ejecución vemos un par de operaciones con índices muy altos. Una operación HASH JOIN RIGTH SEMI, con unos reads no muy altos pero con unos tiempos elevados.
En estos punto, es donde deberíamos atacar para optimizar la consulta.
Analizando la SQL encontramos clausulas exists y claulas join no-join que están penalizando a la consulta. Corregimos la estructura de la SQL y volvemos a generar el tkproff
Ahora la ejecución es inmediata y el número de bloques ha bajado de los 200.000 y con una ejecución en 2’’. Ahora sí que tenemos buenos tiempos.