Bonjour,
Comment faire un UPDATE massif optimisé (donc le plus rapidement possible) sous Oracle?
Prenons un cas d'école :
J'ai deux tables A et B qui contiennent ces données :
Je souhaite que dans A, Val devienne Val de A + Val de B.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21A +----+-----+ | Id | Val | +----+-----+ | 1 | 50 | | 2 | 60 | | 3 | 10 | | 4 | 20 | +----+-----+ B +----+-----+ | Id | Val | +----+-----+ | 1 | 70 | | 2 | 10 | | 3 | 60 | | 4 | 40 | +----+-----+
Sous Sybase, cette syntaxe EST autorisée :
Sous Oracle, cette syntaxe est interdite (ce qui est bien dommage, car elle permet de n'ouvrir qu'un seul curseur....).
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
Si j'ai bien compris, sous Oracle, je dois donc faire ainsi :
Ici, on se rend bien compte que Oracle va ouvrir un curseur sur B pour chaque row de A.... Pour des petites tables, aucune incidence, mais je suis intimement convaincu que si les tables A et B sont grosses, Oracle mettre beaucoup plus de temps à exécuter la requête que Sybase....
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
Toute suggestion est la bienvenue...
Merci d'avance.
Nico'

 

 
		
		 
         
			
			



 [Oracle SQL toutes versions] UPDATE massif
 [Oracle SQL toutes versions] UPDATE massif
				 Répondre avec citation
  Répondre avec citation


 
   
Partager