|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre Expert
![]() |
Hello tout le monde,
Parfois, lorsque j'ai un update assez volumineux à faire, j'utilise un truc du style: Code :
Et aujourd'hui, je me suis demandé pourquoi ne pas plutôt utiliser un rowid à la place... ça éviterait d'avoir une table de record, et ça serait peut-être plus simple ? Ma question est donc toute bête : est-ce que quelque chose m'empêcherait de faire le même genre de requête en utilisant le rowid à la place des 2 colonnes de ma clé ? Question subsidiaire Merci d'avance |
||
|
|
00
|
|
|
#2 | ||
|
Membre expérimenté
![]() François Inscription : février 2010 Messages : 305 ![]() |
Le mieux ce serait d'utiliser un FORALL
Code :
Bon par contre, c'etait pas la question. |
||
|
|
10
|
|
|
#3 | |
|
Membre Expert
![]() Inscription : août 2009 Messages : 779 ![]() |
Citation:
Sinon, pour utiliser le rowid, il faut être sûr qu'il n'y ait pas de gros mouvements sur ta table en même temps. Je ne suis pas sûr cependant que pour ce genre d'utilisation, il y ait un vrai gain. |
|
|
|
00
|
|
|
#4 | ||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 437 ![]() |
Sinon un curseur select for update nowait et un update par current of
Code :
__________________
More Code : More Bugs. Less Code : Less Bugs |
||
|
|
10
|
|
|
#5 |
|
Membre Expert
![]() |
@Rams7s: bonne idée le FOR ALL, je connaissais pas
@Rei Ichido: le but est de ne pas faire sauter les undo et les rollback segment quand on met à jour une très grosse volumétrie, donc non, ça n'est pas forcément simplifié, mais je ne connais pas d'autres méthodes permettant de faire un update massif "en douceur"... s'il y a mieux, je suis preneur ! Par contre, pourquoi il faudrait être sûr qu'il n'y ait pas de gros mouvement ? Il n'est pas sensé bouger le rowid si ? Le but est plus de simplifier la procédure (pas besoin de créer un record, on peut adapter l'ensemble facilement à une autre table puisque le rowid est toujours fait pareil) que d'améliorer les perfs. Edit: @McM: pas mal aussi comme piste, faut que je creuse ce truc de FOR UPDATE ^^ |
|
|
00
|
|
|
#6 |
|
Membre Expert
![]() Inscription : août 2008 Messages : 1 271 ![]() |
Dans la majorité des cas le rowid est fixe mais :
row_movement_clause question about row movement and alter table shrink Et dans ton cas utilise FORALL (même si la vrai bonne réponse au problème est d'avoir un UNDO correctement designé). Et rajoute RAISE au WHEN OTHERS ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com