Bonjour,
N'arrivant pas à trouver de solutions à mon problème, je finis par venir demander de l'aide car je n'avance plus. J'ai une table sur laquelle je dois mettre à jour plusieurs colonnes. Toutes les lignes doivent être mises à jour. Comme je dois faire un full scan pour mettre à jour chaque colonnes, je mets à jour toutes les colonnes avec un seul update. J'ai donc une requête de ce type là:
Sur Oracle 10g, cet update mettait juste deux fois plus de temps que la mise à jour d'une colonne, 1h00 on va dire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 update matable set col1 = case ... when ... else ... end, col2 = case ... when ... else ... end, col3 = case ... when ... else ... end, col4 = case ... when ... else ... end;
Depuis le passage à Oracle 11g, la mise à jour met à peut près 15h alors que la mise à jour d'une colonne met toujours 0h30. Il devient en fait plus rentable de mettre à jour toutes les colonnes séparément.
Je me demandais donc ce qui pouvait cause ce problème de performances ou si vous aviez des pistes de recherche.
Pour ce que ca vaut, le plan d'exécution est le même que je mette à jour une ou toutes les colonnes.
Merci d'avance!!
Partager