IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration Oracle Discussion :

Tablespace toujours plein aprés gros delete


Sujet :

Administration Oracle

  1. #1
    Expert éminent
    Avatar de neo.51
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    2 663
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 663
    Points : 6 418
    Points
    6 418
    Par défaut Tablespace toujours plein aprés gros delete
    Bonjour,

    Je suis sous oracle XE (une 10g quoi) sous windows.

    Voilà je viens d'effectuer un gros delete sur une table (15 millions d'enregistrements) et j'ai 2 gros problèmes :

    1. Mon tablespace ou j'avais ma grosse table est toujours plein à 90%
    2. Mon Tablespace de UNDO est plein à 99%


    Le tablespace était plein à 98% avant mon delete, j'ai delete 2/des données et il est encore plein à 90%.

    J'ai éssayé :
    -Purge du tablespace contenant ma grosse table.
    -COALESCE du tablespace
    -gather_stats

    Rien à faire je comprend pas pourquoi mon tablespace est aussi plein

    une idée ?

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    DELETE ne libère pas les extents cf HWM

    Essaye un

  3. #3
    Expert éminent
    Avatar de neo.51
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    2 663
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 663
    Points : 6 418
    Points
    6 418
    Par défaut
    Cool

    Mon tablespace contenant la fameuse table a maintenant une taille raisonnable.

    Par contre ben j'ai toujours le problème sur mon tablespace UNDO qui a grossi autant que j'ai vidé l'autre tablespace avec les deletes.

    En gros comme si après le commit le undo ne s'était pas vidé...

  4. #4
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    en effet, c'est le cas

    Et pour le UNDO, tu n'as pas d'autre choix que de le recréer. Tu crées un UNDOTBS02, tu changes le paramètre UNDO_TABLESPACE en conséquence et tu redémarres. Après, soit tu restes sur celui-là et tu supprimes le UNDO original, soit tu retailles l'ancien UNDO, tu rechanges UNDO_TABLESPACE et tu redémarres encore.

  5. #5
    Expert éminent
    Avatar de neo.51
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    2 663
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 663
    Points : 6 418
    Points
    6 418
    Par défaut
    Citation Envoyé par orafrance Voir le message
    en effet, c'est le cas
    C'est quoi cette blague !!!!

    Et pour le UNDO, tu n'as pas d'autre choix que de le recréer. Tu crées un UNDOTBS02, tu changes le paramètre UNDO_TABLESPACE en conséquence et tu redémarres. Après, soit tu restes sur celui-là et tu supprimes le UNDO original, soit tu retailles l'ancien UNDO, tu rechanges UNDO_TABLESPACE et tu redémarres encore.
    ... heu alors ça ça doit-être marrant pour les vrai dba comme toi mais quand on est pas spécialiste ça donne un peu des sueurs froides

    bon je vais me le tenter cette fois mais si je veux repurger ma table y a t'il un moyen de faire une "delete matable where ..." sans que ça me bouffe le undo ?

    J'ai bien vu ta soluce sur le forum qui consiste à créer une table qui contient les données à garder et dropper la grosse table mais je suis sur un oracle XE donc assez limité en espace (4Go).

  6. #6
    Expert éminent
    Avatar de neo.51
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    2 663
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 663
    Points : 6 418
    Points
    6 418
    Par défaut
    Encore plus fort !!!!

    J'allais faire la manip pour changer le UNDO et 3H aprés avoir fini le delete et le commit sa majesté oracle XE c'est décidée à vider le UNDO... sans que j'ai lancé la moindre commande SQL... une explication rationnelle à tout ça ?


    En tous cas encore merci pour tes précieux conseils orafrance

  7. #7
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    serait ce une nouvelle fonctionnalité de la 10g ou ma mémoire qui défaille ? Il me semblait que les extents n'étaient jamais libéré Faudrait vérifier si arriver au terme du UNDO_RETENTION (temps de conservation des blocs dans le UNDO) Oracle libère les extents... mais ça me surprend

    Sinon, la stratégie d'Oracle est assez simple : limiter au maximum d'allouer de l'espace disque parce que c'est très couteux. Donc si un extent a été alloué, il ne le libère pas sans une bonne raison

    Ha oui, j'oubliais aussi qu'en 10g tu peux faire un DEALLOCATE UNUSED des segments

    Pour info : http://download.oracle.com/docs/cd/B...ical.htm#i4896

    Si le UNDO désalloue les extents si une taille OPTIMAL est définie, lis la partie : When Extents Are Deallocated

  8. #8
    Expert éminent
    Avatar de neo.51
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    2 663
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 663
    Points : 6 418
    Points
    6 418
    Par défaut
    Je précise pour éviter la confusion : la taille sur le disque n'a pas changé hein, on parle bien du taux d'utilisation du UNDO qui était à 99% alors que tout avait été commité.

    Impossible de la réduire physiquement.

  9. #9
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    j'ai édité mon message

    Je suis un peu "obsoléte" depuis la 10g

  10. #10
    Expert éminent
    Avatar de neo.51
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    2 663
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 663
    Points : 6 418
    Points
    6 418
    Par défaut
    J'ai passé l'aprés midi à chercher sur internet et personne ne parle de DEALLOCATE UNUSED alors que j'en ai lu un paquet d'articles sur la fragmentation des tables.

    Je vais éssayer ça mais ça mériterait une entrée dans la FAQ oracle

  11. #11
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    L'algorithme de gestion de l'espace dans le tablespace undo est assez différent d'un tablespace permanent. Tom Kyte en a donné une description dans ce message.

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 175
    Points : 180
    Points
    180
    Par défaut
    pour le UNDO sous 10g j'avais posé la même question il y a 2 ans

    voilà la réponse : http://www.developpez.net/forums/d16...us-oracle-10g/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#] Process toujours actif apres fermeture de la fenetre
    Par toxycyty dans le forum Windows Forms
    Réponses: 4
    Dernier message: 26/10/2006, 16h48
  2. Close d'un recordset apres un delete
    Par tibtibby dans le forum ASP
    Réponses: 9
    Dernier message: 08/08/2006, 15h28
  3. Réponses: 4
    Dernier message: 29/05/2006, 05h48
  4. Fichiers toujours apparents après un déplacer ?
    Par elitost dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 19/03/2006, 09h50
  5. aprés un delete dans un formulaire
    Par Valarauko dans le forum XMLRAD
    Réponses: 2
    Dernier message: 11/01/2005, 14h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo