Optimisation d'une requete UPDATE table volumineuse
Bonjour,
Je cherche à optimiser la requête suivante:
Code:
1 2 3 4 5 6 7 8 9 10 11
|
UPDATE PLN_IND_DET A
SET (A.DEMANDE) = ( SELECT SUM(B.ACTUALDEMAND)
FROM FCITEMDATA B
WHERE B.CONFIG='PDP'
AND B.ITEM=A.ITEM
AND B.YEAR=A.YEAR
AND B.PERIOD=A.MONTH
)
WHERE A.NAME = 'TOT_PDP'
AND A.DATE = TO_DATE('2011-11-24','YYYY-MM-DD') |
Le but est de mettre à jour le champ DEMANDE dans la table PLN_IND_DET avec la somme du champ ACTUALDEMAND dans la table FCITEMDATA pour les lignes équivalentes (chaque ligne dans la 1ère table a au moins un ou plusieurs lignes équivalentes dans la deuxièmes table).
Les clés de la table PLN_IND_DET :
- NAME
- DATE
- BU
- ITEM
- YEAR
- MONTH
+ autres champs non clés.
Les clés de la table FCITEMDATA
- CONFIG
- ITEM
- YEAR
- PERIOD
- LEVEL
+ autres champs non clés.
Les seuls champs qui me permettent de faire la jointure sont
B.ITEM=A.ITEM
AND B.YEAR=A.YEAR
AND B.PERIOD=A.MONTH
Les deux tables sont trop volumineuses et l’exécution dure des heures (pas moins de 300000 lignes à màj dans la 1ère table).
y-a-t-il un moyen de modifier cette requête pour l’optimiser ?
Merci d’avance