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é :
Quand je dis qu'elle met à mal l'AS400, c'est qu'elle utilise 60% de l'AS400 pendant très longtemps.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ) ;
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 :
J'en étais à un peu moins de 100 lignes affectées.
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT COUNT(*) FROM rembtest.amuaide WHERE datefin > 0
J'ai pu me rendre compte en actualisant plusieurs fois le résultat que la requête update affectait environs une ligne par seconde
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
Partager