Bonjour à tous,

Je rencontre quelques soucis avec un UPDATE. 500.000 lignes env (ce qui n'est pas énorme)


Pour l'instant ce que je fait :
- Création d'un table tmp (physique) avec uniquement la données qui m’intéresse + Les colonnes de la jointure utile à l'update.
- Les index sont créés sur les deux tables.


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
        INSERT INTO A  (s2cgr, cgr_cod, chm, chmaa, ets)
        SELECT s2cgr, cgr_cod, chm, chmaa, ets
      	FROM  Source,
              B
        WHERE Source.cgr_cod = B.cgr_cod
					  AND Source.ets = B.ets
					  AND Source.chmaa = B.chmaa
					  AND Source.chm = B.chm
            AND B.chm = 'ST15'; 
        COMMIT;
 
 
        UPDATE B
				SET B.unite = (SELECT DISTINCT  s2cgr	 
				                       FROM A CCGR 
                                                       WHERE A.cgr_cod = B.cgr_cod
                                                       AND A.ets = B.ets
                                                       AND A.chmaa = B.chmaa
                                                        AND A.chm = B.chm)
				WHERE B.chm = 'ST15' 
        AND EXISTS
                                  ( SELECT 1 FROM A CCGR 
                                   WHERE A.cgr_cod = B.cgr_cod
                                    AND A.ets = B.ets
                                    AND A.chmaa = B.chmaa
                                    AND A.chm = B.chm)
Vous avez une idée ?

Bonne soirée.