bonjour
Je souhaite optimiser une requête qui s'exécute selon le rapooert AWR en 1200 fois et chaque exécution prend 7 sec => temps total de 8400 sec ( 2h 20min environ , c'est trop !!!).
Selon le rapport AWR , elle apparait au top des SQL BY ELAPSED TIME.
et elle est surtout bindée (bind variable).
Ma question est :
Quelles sont les causes possibles de l'exécution mutipliée ( 1200 fois dans mon cas) d'une même requête (même sql_id) ?
- Une boucle dans le traitement ?
- L’utilisation d'un index ?
- L'utilisation d'une jointure de type Nested Loop ?
- autre ?
Le traitement générant cette requête est une boîte noire (progiciel).
Afin d'optimiser :
Faut-il dans ce cas focaliser sur le temps d'exécution unitaire ( 7 secondes) pour les optimiser et gagner au final sur le temps total d'exécution.
OU
Eviter cette exécution multipe et essayer de la faire en ONE SHOT par exemple ? En proposant à l'éditeur une autre écriture de la requête ?
merci les optimiseurs
Elapsed Time (s) Executions Elapsed Time per Exec (s) %Total %CPU %IO SQL Id SQL Module SQL Text
8400,00 1200,00 7,00 35.21 89.71 11.38 78f54g5448v23c SQLDEVELOPER SELECT /*+ INDEX(PRO PRODUCTS */ ...
Partager