/ / SQL inserte y actualice el alto tiempo transcurrido que ocurre solo a cierta hora del día: sql, database, oracle, oracle11g, sql -ecution-plan

SQL inserta y actualiza el alto tiempo transcurrido que ocurre solo a cierta hora del día: sql, database, oracle, oracle11g, sql -ecution-plan

Alrededor de las 7 pm todos los días, me doy cuenta de que miLa aplicación se ejecuta más lento de lo habitual. Al verificar el informe de AWR, noté que 2 sentencias de SQL utilizadas con frecuencia tienen un alto tiempo transcurrido (aproximadamente 1 segundo por ejecución).

Comparé el informe de AWR de una hora anterior del día, 9 AM, y encontré que las mismas sentencias de SQL solo tomaron 0.01 segundos por ejecución.

El número de ejecuciones de estas declaraciones es aproximadamente el mismo. Es seguro decir que mi aplicación tiene una carga mayor a las 9 AM en comparación con la de las 7 PM.

  • Ambas declaraciones (1 actualización y 1 inserción) apuntan a la misma mesa.
  • Esta mesa es bastante enorme.
  • Cada una de esas declaraciones tiene un ID de SQL fijo, por lo que esperaría que el plan de ejecución de cada declaración es el mismo que en el Mañana y también durante la noche.
  • Esta tabla tiene frecuentes inserciones y actualizaciones durante todo el día. Según el informe de AWR para esa hora normal y anormal, hay alrededor de 100 000 inserciones y 60 000 actualizaciones.

¿Alguien me puede indicar la dirección correcta en cuanto a cómo podría resolver este problema?

No soy el DBA.

Muchas gracias de antemano.

Respuestas

0 para la respuesta № 1
  1. El informe de AWR debe poder responder la pregunta de carga (9am vs 7pm).
  2. Tener el mismo ID de SQL solo significa el texto delLa declaración SQL es la misma; No es el plan de ejecución. Debe ver el valor de hash del plan (PHV) para ver si los planes de ejecución son los mismos. Si son diferentes, entonces debe observar los planes de ejecución reales y comprender por qué ellos son diferentes.
  3. ¿Qué es "bastante grande"? Ser numérico