Bonjour,
J'ai 2 tables, dont une assez conséquente:
J'y ai lancé un update massif, mais Oracle ne m'a jamais rendu la main
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
Si par conter je lance le select correspondant, la requête se fait tout de suite, et me retourne quelques 60'000 lignes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
Le plan d'exécution me retourne ces infos :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
Comment expliquer ces lenteurs sachant qu'aucun fichier n'est saturé et que l'instance est de plus en noarchivelogs ?Etapes du plan d'exécution:
Etape n° Nom de l'étape
5 UPDATE STATEMENT
2 UPDATE
1 FUSASS TABLE ACCESS [FULL]
4 GFUCVTP TABLE ACCESS [BY INDEX ROWID]
3 FC_GFUCVTP INDEX [RANGE SCAN]
Etape n° Description Coût estimé Nombre estimé de lignes renvoyées Nombre estimé de kilo-octets renvoyés
1 Cette étape du plan extrait toutes les lignes de la table FUSASS. 81 71'503 1'256.889
2 Cette étape du plan met à jour les lignes de la table FUSASS qui remplissent la clause WHERE de l'instruction UPDATE.
3 Cette étape du plan extrait plusieurs ROWID par ordre croissant en balayant l'index B*-tree FC_GFUCVTP. 5 1 --
4 Cette étape du plan extrait des lignes de la table GFUCVTP via les ROWID renvoyés par un index. 33 1 0.025
5 Cette étape du plan définit cette instruction comme instruction UPDATE. 81 71'503 1'256.889
Sous Oracle, n'y a-t-il pas moyen d'écrire l'update de manière plus conviviale, du genre
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6

 

 
		
		 
         
 

 
			
			


 
  
  
 
 
  
 
 
			 
   
 



 
				 [O8i]update et performances
 [O8i]update et performances
				 Répondre avec citation
  Répondre avec citation

 
			 
   

 
  
						 mais attend... dans le select à tout les coups, il ne fait pas le FULL SCAN sur FUSASS  grace aux critères : a.cdCaisse = b.cdoldcai ou a.noAss = to_char(b.nboldval)
 mais attend... dans le select à tout les coups, il ne fait pas le FULL SCAN sur FUSASS  grace aux critères : a.cdCaisse = b.cdoldcai ou a.noAss = to_char(b.nboldval) 
						 Envoyé par fadace
 Envoyé par fadace
					
				
 
						
Partager