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 :

temps de calcul des statistiques Oracle ? [10gR2]


Sujet :

Administration Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 73
    Points : 47
    Points
    47
    Par défaut temps de calcul des statistiques Oracle ?
    Bonjour,

    Je me demande de quoi dépends le temps de calcul des statistiques Oracle ?
    Y a t il possibilité d'augmenter la vitesse ?

    D'après ce que je sais (peut être je fait fausse piste) :
    - CPU
    - Accès au disque (volume de la base)

    On peut augmenter la vitesse de calcul en estimant les statistiques plutôt qu'en les calculant entièrement.

    y a t il d'autres pistes à suivre ?
    Quelle serait la taille optimal d'estimation ?

    Mon soucis, c'est que je calcul les stats d'une base (avec les package dbms_stats) de 500Go et que ça me prends plus d'une journée.

    Merci pour le coup de pouce

  2. #2
    Membre expert

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2012
    Messages
    612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 612
    Points : 3 066
    Points
    3 066
    Par défaut
    Bonjour,

    Plutôt que d'essayer d'augmenter la vitesse d'un traitement, il vaut mieux commencer par réduire le périmètre de ce traitement au strict minimum.

    La première question serait : pourquoi avoir besoin de calculer les statistiques sur toute une base ?
    Vous avez vidé la base et l'avez repeuplée complètement ? En dehors de ce cas, vous devriez normalement avoir déjà un certain nombre de statistiques à jour.

    Pourriez-vous détailler le contexte ?

    Merci pour ces précisions.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 73
    Points : 47
    Points
    47
    Par défaut
    Bonjour,

    En effet, une grande partie de la base est chargé de façon quotidienne.
    Une partie des stats est recalculé immédiatement, mais pour les tables le plus volumineuse on attends le week end pour recalculer les stats.

    C'est ce dernier traitement qui prends du temps.

  4. #4
    Membre confirmé
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2007
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Novembre 2007
    Messages : 419
    Points : 616
    Points
    616
    Par défaut
    bonsoir,

    donc il y a un job qui vient remplacer le gather stats auto.
    et ce job a sûrement des paramètres.
    vous les trouverez dans le script joué le week-end. le temps pris dépend bien sûr de la taille et du nombre des objets, de la version (on peut avoir un bug par exemple en 10g sur la granularité positionnée à all sur les tables partitionnées), de l'échantillonnage, de l'inclusion ou non d'histogrammes, des options....
    si ce script existe essayez de savoir pourquoi il a été choisi de faire tourner des stats plus importantes le week-end.
    une journée ne me semble pas être un temps normal. avez vous des tables partitionnées, avec des lobs?
    bonne recherche

  5. #5
    Membre régulier
    Inscrit en
    Juillet 2007
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 111
    Points : 86
    Points
    86
    Par défaut
    Bonjour,

    J'administre aussi une base de ce volume environ 500 Go.
    Le recalcul des stats pouvait durer très longtemps (plutôt 12h que 24 tout de même) quand le paramètre estimate_percent était de 100 (valeur à la création du script).

    Nous avons gagné beaucoup en passant ce pourcentage à 20 pour les grosses tables (+30millions de lignes), le temps de calcul sur ces tables a été divisé par 10 (en moyenne).
    Certaines peuvent même tourner la nuit maintenant.
    Pour les petites tables (<1 million de lignes), nous avons laissé 100 car le gain de temps est négligeable. ( pour le temps de traitement aussi souvent )


    Par défaut, ORACLE utilise DBMS_STATS.AUTO_SAMPLE_SIZE qui est souvent entre 5 et 20.
    Dans certains cas, nous avions distingué des ralentissements quand les stats n'étaient calculées qu'à 5%.

    En espérant que ça t'aide.

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

Discussions similaires

  1. [MySQL] Calcul des statistiques
    Par cirvent dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 22/02/2009, 23h21
  2. Calcul des statistiques
    Par enDev dans le forum Administration
    Réponses: 4
    Dernier message: 21/07/2008, 11h43
  3. Mesurer le temps de calcul des fonctions
    Par dzada dans le forum Caml
    Réponses: 2
    Dernier message: 12/03/2007, 19h54
  4. calcul des statistiques par dbms_stat
    Par learn dans le forum Oracle
    Réponses: 5
    Dernier message: 27/02/2006, 21h16
  5. [DBA] Calcul des Statistiques sans privilèges DBA
    Par Krashtest dans le forum Administration
    Réponses: 14
    Dernier message: 06/05/2004, 16h08

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