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 :

Statistiques : ORA-01555


Sujet :

Administration Oracle

  1. #1
    Membre éprouvé
    Inscrit en
    Février 2009
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 127
    Par défaut Statistiques : ORA-01555
    Bonjour,

    J'ai une grosse table partitionnée sur laquelle je lance un calcul de statistique de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    DBMS_STATS.GATHER_TABLE_STATS(ownname => NULL,
                    tabname => 'MA_TABLE', 
                    partname => NULL, 
                    estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE, 
                    block_sample => FALSE, 
                    method_opt => 'FOR ALL COLUMNS SIZE 1', 
                    degree => 4, 
                    granularity => 'DEFAULT', 
                    cascade => TRUE, 
                    stattab => NULL, 
                    statid => NULL, 
                    statown => NULL, 
                    no_invalidate => FALSE);
    DBMS_STATS.GATHER_TABLE_STATS(ownname => NULL,
                    tabname => 'MA_TABLE', 
                    partname => NULL,
                    estimate_percent => DBMS_STATS.AUTO_SAMPLE_SIZE, 
                    block_sample => FALSE, 
                    method_opt => 'FOR COLUMNS FLAG_CM, NO_ANNEE SIZE 10', 
                    degree => 4, 
                    granularity => 'DEFAULT', 
                    cascade => TRUE, 
                    stattab => NULL, 
                    statid => NULL, 
                    statown => NULL, 
                    no_invalidate => FALSE);
    Au bout de quelques heures, Oracle me retourne l'erreur ORA-01555.
    ORA-01555: snapshot too old: rollback segment number 10 with name "_SYSSMU10$" too small

    Pour éviter cela je pourrais augmenter le undo_retention mais j'aimerais savoir si en calculant les statistiques partition par partition j'évite ce problème ?

    Merci d'avance,
    Sylvain

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    il y a des chances puisque ce sera plus rapide, tu auras donc moins de risque de voir le snapshot expirer.

  3. #3
    Membre éprouvé
    Inscrit en
    Février 2009
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 127
    Par défaut
    Ok merci je vais tester.
    De plus je viens de me rendre compte que je recuperais dans un curseur le nom des tables afin de calculer les stats et du coup si la table est grosse mon curseur reste ouvert très très longtemps .

    J'ai donc modifié pour utiliser un bulk collect.
    Je vais tester voir si c'est mieux

    Sylvain

Discussions similaires

  1. [PL/SQL] ORA-01555 ?
    Par arezki76 dans le forum Oracle
    Réponses: 9
    Dernier message: 29/04/2016, 17h35
  2. ORA-01555 lors d'un export
    Par dleho dans le forum Import/Export
    Réponses: 6
    Dernier message: 05/09/2007, 22h20
  3. ORA-01555: snapshot too old
    Par skaloup dans le forum Administration
    Réponses: 6
    Dernier message: 13/06/2007, 16h41
  4. ORA-01555
    Par loki8 dans le forum Oracle
    Réponses: 31
    Dernier message: 06/04/2006, 17h11
  5. Erreur ORA-01555 sur un select
    Par LRI dans le forum Oracle
    Réponses: 2
    Dernier message: 13/05/2005, 11h42

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