|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre éclairé
![]() Inscription : septembre 2003 Messages : 432 ![]() |
Bonjour,
je dois faire des grosses modifications (delete from tb where ...)sur une tables (plusieurs Go de donée à supprimer). Je suis sûr de mes modifications, je voudrais savoir si je mets le tablespace undo offline cela gargnera du temps lors de modification ? Code :
|
||
|
|
00
|
|
|
#2 |
|
Membre expérimenté
![]() ![]() Nicolas Gasparotto Inscription : janvier 2007 Messages : 424 ![]() |
Ca ne marchera pas.
La suppression de plusieurs millions de lignes doit avoir une autre issue (par ex. create table as select..., drop la table source, rename de la nouvelle table). Nicolas. |
|
00
|
|
|
#3 |
|
Membre régulier
![]() Inscription : octobre 2006 Messages : 73 ![]() |
Ou alors passe par une petite procédure stockée crée pour l'occasion qui va te permettre de faire un loop dans lequel tu vas deleter tes lignes par paquets (mettons par paquets de 3000) enchaîné avec un commit, une vérification du fait qu'il reste des lignes à supprimer (sinon exit) et le tour est joué. La
|
|
|
00
|
|
|
#4 |
|
Membre régulier
![]() Inscription : octobre 2006 Messages : 73 ![]() |
Ou alors passe par une petite procédure stockée crée pour l'occasion qui va te permettre de faire un loop dans lequel tu vas deleter tes lignes par paquets (mettons par paquets de 3000) enchaîné avec un commit, une vérification du fait qu'il reste des lignes à supprimer (sinon exit) et le tour est joué.
La seule chose délicate est de choisir le bon tempo de commit |
|
|
00
|
|
|
#5 | |
|
Membre expérimenté
![]() ![]() Nicolas Gasparotto Inscription : janvier 2007 Messages : 424 ![]() |
Citation:
Nicolas. |
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() Inscription : février 2006 Messages : 3 433 ![]() |
De plus, augmenter le nombre de COMMIT tend en général à dégrader les performances.
|
|
|
00
|
|
|
#7 | |
|
Membre régulier
![]() Inscription : octobre 2006 Messages : 73 ![]() |
Citation:
|
|
|
|
00
|
|
|
#8 | |
|
Membre éclairé
![]() Inscription : septembre 2003 Messages : 432 ![]() |
Citation:
- créer une table de 30% des données à garder - truncate de la table - insert des 30 % je pense que cela sera la solution la moins couteuse Merci en tout cas pour vos aides |
|
|
|
00
|
|
|
#9 | |
|
Membre régulier
![]() Inscription : octobre 2006 Messages : 73 ![]() |
Citation:
|
|
|
|
00
|
|
|
#10 |
|
Membre régulier
![]() Inscription : octobre 2006 Messages : 73 ![]() |
Attention à l'insert des 30 % !
|
|
|
00
|
|
|
#11 | ||
|
Membre expérimenté
![]() ![]() Nicolas Gasparotto Inscription : janvier 2007 Messages : 424 ![]() |
Citation:
Citation:
|
||
|
00
|
|
|
#12 |
|
Membre éclairé
![]() Inscription : septembre 2003 Messages : 432 ![]() |
pour info
table T1 33 millions de lignes, nous gardons 9 millions de lignes - create table 30% = 10 min - truncate table T1 drop storage = 1 min - drop index table T1 = 1 min - insert into T1 des 30 % (découpé en 500 000 lignes max avec commit) = 1h30 - create index T1 = 25 min - analyze T1 et ses index = 10 min environ 2h20 de traitements mais cela fonctionne !! |
|
|
00
|
|
|
#13 | |
|
Membre expérimenté
![]() ![]() Nicolas Gasparotto Inscription : janvier 2007 Messages : 424 ![]() |
Citation:
Nicolas. |
|
|
00
|
|
|
#14 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
En créant des temporary tables tu peux gagner pas mal de temps aussi
Sinon, export avec l'option query et imp |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com