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 :

[9i] UNDOTBS qui explose lors d'un INSERT


Sujet :

Administration Oracle

  1. #1
    Membre averti Avatar de pascal.barbier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2007
    Messages : 362
    Points : 442
    Points
    442
    Par défaut [9i] UNDOTBS qui explose lors d'un INSERT
    Bonjour,
    J'ai un problème lors d'une boucle d'INSERT :
    le tablespace UNDOTBS explose (plusieurs Go) alors que la table ne semble pas grossir.
    Quelqu'un a-t-il une piste de reflexion ?
    Merci

  2. #2
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    commit ?

    sérieusement, il faudrait détailler un peu plus le contexte, la fameuse boucle, la configuration, la version ....

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    la table ne grossit pas tant qu'il n'y a pas de COMMIT en revanche le UNDO est utilisé pour le ROLLBACK. Tu peux faire des COMMIT plus souvent pour libérer de la place dans le UNDO

  4. #4
    Membre averti Avatar de pascal.barbier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2007
    Messages : 362
    Points : 442
    Points
    442
    Par défaut
    J'ai pensé au commit mais ce n'est pas ça
    je vais demander plus de détail sur la config et le code

  5. #5
    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
    Comment retrouvez-vous l'espace utilisé par la table ?
    Il se peut aussi que le segment de la table a assez d'espace libre. Pour retrouver l'espace libre dans une table, il faut utiliser DBMS_SPACE.

  6. #6
    Membre averti Avatar de pascal.barbier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2007
    Messages : 362
    Points : 442
    Points
    442
    Par défaut
    en fait le tablespace UNDOTBS est en autoextend illimité.
    Dans cette transaction le disque est rempli jusqu'à saturation par accroissement de la taille dudit fichier.

  7. #7
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    c'est là le souci.
    il cherche à assumer le undo_retention précisé. Comme il manque de place, il aggrandit le tablespace

    si vous enlevez l'autoextend, en fonction de l'activité transcationnelle des autres, il est possible que la procédure aille à son terme
    mais il est possible que non.

  8. #8
    Membre averti Avatar de pascal.barbier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2007
    Messages : 362
    Points : 442
    Points
    442
    Par défaut
    Je doute que de supprimer l'autoextend resolve le problème car il s'agit d'une boucle de quelques miliers d'INSERT qui provoque un accroissement de taille du TBS de plusieurs Go.

  9. #9
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    Quand vous mettez l'undo_retention à 4h, cela veut dire "tu fais ce que tu veux, tu te débrouilles comme tu veux, mais je veux que les données commitées ou non ne soient pas réutilisées dans l'undo dans les 4 h qui suivent leur enregistrement"

    si le datafile est autoextend, il va s'en servir pour tenir l'undo_retention.
    Si l'undo est plein (ce qui n'est pas votre cas puisqu'auto-extensible) il va alors commencer à réuiliser les plus anciens blocs commités, au risque de déclencher une ora-1555

    maintenant, si vous voulez pas essayer, je vais pas vous y forcer; c'est vous quio avez le problème, pas moi !

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Citation Envoyé par pascal.barbier Voir le message
    Je doute que de supprimer l'autoextend resolve le problème car il s'agit d'une boucle de quelques miliers d'INSERT qui provoque un accroissement de taille du TBS de plusieurs Go.
    ça peut régler le problème parce que si UNDOTBS est limité en taille le UNDO_RETENTION ne posera pas de problème et les blocs seront recyclés... si tu commits c'est pareil, les blocs sont recyclés après le undo_retention... fait une recherche j'ai répondu à un problème similaire il y a quelques minutes

  11. #11
    Membre averti Avatar de pascal.barbier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2007
    Messages : 362
    Points : 442
    Points
    442
    Par défaut
    Merci à tous de vos réponses attentives.
    Je vais répercuter les infos et je reviendrais si le problème subsiste.

  12. #12
    Membre expérimenté Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Points : 1 738
    Points
    1 738
    Par défaut
    Mais si tu utilises une boucle tu ne peux pas juste faire un commit intermédiaire à la fin de ta boucle ?

  13. #13
    Membre averti Avatar de pascal.barbier
    Profil pro
    Inscrit en
    Août 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2007
    Messages : 362
    Points : 442
    Points
    442
    Par défaut
    Merci encore à tous pour vos réponses.
    La modification du délai de rétention et l'augmentation de la fréquence des commits ont tous deux permis de débloquer la situation.

    Encore merci.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/05/2015, 12h17
  2. [PDO] Accent qui se tranforme en &# 039; lors de l'insertion dans la BDD
    Par TrexXx dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 07/02/2010, 13h34
  3. Réponses: 4
    Dernier message: 24/06/2004, 12h13
  4. [DBA] Oracle 9i -> Rollbacks vs. UNDOTBS ? qui gagne ?
    Par Krashtest dans le forum Administration
    Réponses: 3
    Dernier message: 29/04/2004, 12h55
  5. maj d'1 colonne avec la date du jour lors de l'INSERT
    Par Celina dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 18/12/2003, 15h03

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