Bonjour à tous,

Je souhaiterais si possible un coup de main pour l’optimisation de cette requete

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
select T.CD_PA, T.AN_MS, T.NO_LIG_FIN , T.CD_TY_PER_FAC, T.NB_JR_DEPSS,T.NO_CNC,T.MT_LIG_FIN,T.CD_GRP_PROD
from INFO_EX.TZDFAC T 
where T.CD_TY_PER_FAC='D' and T.NB_JR_DEPSS>3 
and T.AN_MS=(select max(T.AN_MS) from INFO_EX.TZDFAC where CD_TY_PER_FAC='D' and NB_JR_DEPSS>3 and NO_LIG_FIN=T.NO_LIG_FIN and CD_PA=T.CD_PA and AN_MS between
to_char(add_months(sysdate,-7),'YYYYMM') and
to_char(add_months(sysdate,-1),'YYYYMM')
group by NO_LIG_FIN)
 
UNION
 
select T.CD_PA, T.AN_MS, T.NO_LIG_FIN , T.CD_TY_PER_FAC, T.NB_JR_DEPSS,T.NO_CNC,T.MT_LIG_FIN,T.CD_GRP_PROD
from INFO_EX.TZDFAC T 
where T.CD_TY_PER_FAC='*'
and T.NB_JR_DEPSS>3 
and T.AN_MS=(select max(T.AN_MS) from INFO_EX.TZDFAC where CD_TY_PER_FAC='*' and NB_JR_DEPSS>3 and NO_LIG_FIN=T.NO_LIG_FIN and CD_PA=T.CD_PA and AN_MS between
to_char(add_months(sysdate,-7),'YYYYMM') and
to_char(add_months(sysdate,-1),'YYYYMM')
group by NO_LIG_FIN
Si cela peut vous aider la clé primaire de la table est NO_LIG_FIN
Merci d'avance

Mounir