Bonjour,

J'ai créé une requete SQL d'update. Le probleme c'est que ma requete n'est pas efficace au niveau performance. On doit faire une update sur 70 000 lignes et une ligne prend 10 secondes pour etre updater.

Comment améliorer la requete SQL suivante :

Voici le nombre de lignes pour chaque tables :

La table document a 648 244 lignes
La table radiologie a 485 301 lignes
La table data_temp a 70 366 lignes


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
 
 
UPDATE document doc
   SET (doc.nda,doc.noip) = (SELECT sda.nda,sda.nip_actif
                    FROM DATA_TEMP sda
                         INNER JOIN radiologie rad
                           ON CONCAT(rad.ID_DEMANDE, rad.ID_EXAMEN) = sda.s_aphp_reference_acte_rados
                   WHERE rad.id_document_lie = doc.id_document)
 WHERE EXISTS (SELECT NULL
                 FROM DATA_TEMP sda
                      INNER JOIN radiologie rad
                        ON CONCAT(rad.ID_DEMANDE, rad.ID_EXAMEN) = sda.s_aphp_reference_acte_rados
                WHERE rad.id_document_lie = doc.id_document);
Merci