Probablemente debería comenzar con EXPLICAR PLAN .
Luego edite su pregunta y publique la instrucción SQL y el resultado de EXPLAIN PLAN.
No te voy a ayudar mucho con esa consulta. 269 líneas, al menos 29 SELECT, consultas paralelas, bases de datos remotas, uniones externas (estilo antiguo), etc.
El mejor consejo que puedo darte es
- obtener más información de EXPLAIN PLAN, y
- simplificar el problema.
La tabla de planes tiene más columnas de las que comúnmente se publican. Las columnas COSTO, CARDINALIDAD, BYTES y TIEMPO pueden ser útiles para priorizar su esfuerzo de ajuste.
Tienes 10 escaneos completos de tablas en esa consulta. ("TABLE ACCESS FULL" en el plan de consulta). Eso suele ser una mala señal; los escaneos completos de la tabla a menudo tardan un tiempo relativamente largo en ejecutarse. No es siempre una mala señal Una exploración completa de una tabla pequeña puede ser más rápida que una exploración de índice.
Comience por obtener el resultado de EXPLAIN PLAN para cada una de las 29 declaraciones SELECT en su consulta. Si alguno de ellos muestra un escaneo completo de la tabla, probablemente pueda mejorar su rendimiento con índices adecuados . (Oracle admite muchos tipos diferentes de índices. No pase por alto las oportunidades para los índices de varias columnas). En cualquier caso, la salida de EXPLAIN PLAN lo ayudará a identificar el más lento de los 29 SELECT.