YOUEL24
Messages postés2Date d'inscriptionmercredi 25 mars 2009StatutMembreDernière intervention 2 février 2011
-
1 févr. 2011 à 15:36
EricSQL
Messages postés33Date d'inscriptionsamedi 11 octobre 2008StatutMembreDernière intervention24 février 2011
-
24 févr. 2011 à 19:17
Bonjour,
L'exécution de la requête ci-dessous sous oracle, me prends plus de 3h, pourriez-vous svp m'aider à l'optimiser?
D'avance, je vous remercie.
Celine.
**************************************************************
update table1 A
set A.CHAMPSa2='YES'
WHERE A.champsA1=
(select distinct A.champsA1
from table2 B,table3 C
where A.cle1=B.cle1 and A.cle2=C.cle2 and A.champsA1 in ('11111','2222','3333')
and B.champsB1 not in('AAAAA') and C.champsC1 ='ATN' and A.ENV='DEV') ;
***************************************************************
EricSQL
Messages postés33Date d'inscriptionsamedi 11 octobre 2008StatutMembreDernière intervention24 février 2011 24 févr. 2011 à 19:17
Bonjour,
avant toutes choses, il faudrait connaitre quels sont les index sur les 3 tables, et les volumétries en jeu.
Sans connaitre ces informations, la requête devrait être plus rapide ainsi :
Update TABLE1 A
set A.champsa2 = 'YES'
where exists (
Select 1
from TABLE2 B
, TABLE3 C
where A.cle1 = B.cle1
and A.cle2 = C.cle2
and B.champsB1 <> 'AAAAA'
and C.champsC1 = 'ATN'
)
and A.champsA1 in ('11111','2222','3333')
and A.ENV = 'DEV'
and A.champsa2 <> 'YES'
;