UPDATE avec sous-sélection TRES lent
Bonjour,
j'ai cherché à faire une requête update avec sous sélection pour remplir une colonne mais cette requête met à mal notre AS400.
Voici la requête concerné :
Code:
1 2 3 4 5 6 7 8 9 10 11
| update rembtest.amuaide as ds0 set datefin = (
select
max(ds1.dsas0dfde)
from clilandta.dsas000 as ds1
where
ds0.ni = ds1.dsas0n010
and ds1.dsas0dec like ('1%') and ds1.dsas0eta = '3 '
and ds1.dsas0sera = 'SAN' and ds1.dsas0aide like '%AMU%'
and ds1.dsas0ddde < 20110700 and ds1.dsas0dfde > 20110000
)
; |
Quand je dis qu'elle met à mal l'AS400, c'est qu'elle utilise 60% de l'AS400 pendant très longtemps.
La table à mettre à jour ne contient que +- 2500 enregistrements, elle est composée de 6 colonnes et personne ne l'utilise à part moi.
Après plus d'une minute d’exécution, j'ai fait un select sur la table d'update pour voir le nombre de ligne déjà mise à jour :
Code:
SELECT COUNT(*) FROM rembtest.amuaide WHERE datefin > 0
J'en étais à un peu moins de 100 lignes affectées.
J'ai pu me rendre compte en actualisant plusieurs fois le résultat que la requête update affectait environs une ligne par seconde :cry:
Donc j'aimerais savoir ce que j'ai fais de mal dans ma requête qui ne me semble pas compliquée pour avoir un tel résultat :(