Améliorer un temps de traitement
bonjour,
il y a la requête suivante qui est exécutée 40 millions de fois
Code:
1 2 3 4 5 6 7
|
SELECT*COUNT (DISTINCT T_YYYY.IDT_YYYY)
FROM*XXXXXXX, T_YYYY_DETAIL@ADHCRLINK, T_YYYY*WHERE*XXXXXXX.IDXXXXXXX = :B1
AND*TRIM (XXXXXXX.LA_QUALI) = TRIM (T_YYYY_DETAIL.PFD_DETAIL)
AND*TRIM (T_YYYY_DETAIL.PFD_CODE) = TRIM (T_YYYY.PF_BEPRO)
AND*( XXXXXXX.LA_ZZZZZ IS NULL OR XXXXXXX.LA_ZZZZZ = ? OR ( XXXXXXX.LA_ZZZZZ IS NOT NULL
AND*XXXXXXX.LA_ZZZZZ = T_YYYY.PF_ZZZZZ ) ) |
via le script suivant :
Code:
1 2 3 4 5 6 7 8 9 10
|
#!/bin/bash
source
/ZVU//libs/
start Utidonnees
log_exec sqlplus USER/MDP <<EOF
exec uti.ps_axie('Calc'); |
et une requête dure 25 milisecondes. Soit 25 heures de traitements.
Nous cherchons à améliorer le temps de traitement
N'est-il pas possible d'éviter les 40 millions d'exécutions afin de diminuer le temps de traitements ou optimiser la requête ?