sql >> Base de Datos >  >> RDS >> Oracle

Explicar el punto de dolor del costo del plan

Hoy temprano, estaba trabajando con un desarrollador en una consulta que tenía un rendimiento deficiente. Esta consulta era grande y compleja, e inicialmente parecía un esfuerzo de enormes proporciones para averiguar dónde se encuentra el problema de rendimiento. Con el plan de explicación, a veces podemos usar el costo para ayudar a reducir el punto débil de rendimiento de una consulta grande y compleja.

Al observar un plan de explicación de esta consulta, podemos ver que su costo general es bastante alto.

Al observar los detalles, podemos ver que la exploración de tabla COMPLETA (FTS) en la tabla DETAIL_RECORD tiene un costo alto de 51018. Observe cómo el costo alto de FTS se propaga hacia arriba en el plan. Todas las operaciones por encima de este FTS tienen un alto costo debido al alto costo de este acceso a una sola tabla. Acceder a la tabla CIMS_POLICIES_TO_PROCESS tiene un costo relativamente bajo, pero la operación HASH JOIN recibe su alto costo solo por el alto costo de acceder a la tabla DETAIL_RECORD.

El costo total es solo un poco más que el costo de acceder a esta tabla. Está claro que el FTS en esta tabla es el mayor contribuyente al punto de dolor de esta consulta que se analiza.

Al observar los costos del plan de explicación de esta manera, pudimos concentrarnos muy rápidamente en el área de una consulta muy compleja que está causando el mayor problema de rendimiento. Sin el análisis de costos realizado aquí, determinar qué parte de la consulta a continuación está causando el problema habría sido mucho trabajo.