Bonjour,

J'ai besoin de mettre à jour plusieurs lignes dans une table:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
contact(id,
nom,
prenom,
mobile,
tel,
email,
fax)
. la mise à jour se fait chaque fois par rapport à une colon différente ( par fois la mise à jour se fait en prenant "mobile" comme référence, par fois email ...).
Au lieux de lancer une requête pour chaque mise à jour j'ai créé une table temporaire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
contact_temp(id,
nom,
prenom,
mobile,
tel,
email,
fax)
dans laquelle j’insère les contacts à jour puis je lance la requête suivante (cas où le critère d'identification est l'email):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
update contact c, contact_temp c_t  set c.nom=c_t.nom, c.prenom=c_t.prenom, c.mobile=c_t.mobile, c.tel=c_t.tel, c.email=c_t.email, c.fax=c_t.fax where c.email=c_t.email
Le problème c'est que cette requête est trop lente surtout si le nombre de contacts à mettre à jour est de l'ordre de 20000.
Y a t il d'autres alternative ou devrais-je modifier la requête pour améliorer les performance?
BN: j'utilise java/JDBC.
Merci d'avance.