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 :

Différence entre un calcul des stats sur toute la table et par partition [11gR1]


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Expert technique
    Inscrit en
    Septembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Expert technique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2
    Par défaut Différence entre un calcul des stats sur toute la table et par partition
    Bonjour à toutes et à tous,


    J'ai une question :

    Suite à une modification d'une table simple vers une table partitionnée.

    y a-t-il une différence entre un calcul des stats sur toute la table ? genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DBMS_STATS.GATHER_TABLE_STATS( ownname => 'XXXX', tabname => 'TABLE_NAME', estimate_percent => 100, method_opt => 'for all columns size 1', cascade => true, degree => 16 );
    et un parcours partition par partition de la table avec un calcul des stats ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DBMS_STATS.GATHER_TABLE_STATS ('XXXX','TABLE_NAME',PARTITION_NAME,estimate_percent=>DBMS_STATS.AUTO_SAMPLE_SIZE,DEGREE=>16);
    C'est la même chose ou il faut faire les deux en même temps ?

    Merci d'avance pour vôtre aide.

  2. #2
    Membre émérite Avatar de 13thFloor
    Homme Profil pro
    DBA Oracle freelance
    Inscrit en
    Janvier 2005
    Messages
    670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France

    Informations professionnelles :
    Activité : DBA Oracle freelance

    Informations forums :
    Inscription : Janvier 2005
    Messages : 670
    Par défaut
    Hello,
    il faudrait vérifier la granularité par défaut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select 'GRANULARITY : '||dbms_stats.get_prefs('GRANULARITY',null,null) from dual;
    Perso, après passage en partition, je lancerai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exec dbms_stats.gather_table_stat('ownname => 'XXXX', tabname => 'TABLE_NAME', estimate_percent => 100, method_opt => 'for all columns size auto', cascade => true, degree => 16, granularity=>'ALL',no_invalidate=>'FALSE')
    granularity à ALL permet de calculer les stats sur les partitions, sous-partitions et sur le global de la table.
    no_invalidate va invalider les curseurs utilisant cette table.
    Pour ne calculer les histogrammes que sur les colonnes qui en ont déja : for all columns size auto.
    Le "for all indexed columns size 254" va prendre du temps mais donne des informations plus pertinentes à l'optimiseur.
    Si tu n'as pas besoin d'histogramme, tu peux laisser for all columns size 1.
    Voir : https://docs.oracle.com/cd/E18283_01...s.htm#i1036461
    ou https://docs.oracle.com/database/121...htm#ARPLS68582

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Expert technique
    Inscrit en
    Septembre 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Expert technique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2
    Par défaut
    Bonjour 13thFloor.

    Merci beaucoup pour l'explication et pour ton aide.

    Cordialement,
    yatk

  4. #4
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2015
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2015
    Messages : 49
    Par défaut
    Bonjour, je ne me rappelle plus les détails, et donc ceci est plus vous donner une piste : il vaut mieux dans certains cas (surtout si la table est grande et la nature de vos requêtes en bénéficiant) possibilité de collecter les stats sur une partition (surtout si les autres n'ont pas changées) et laisser Oracle 'déduire' les stats globales en utilisant des synopsis , ce qui permet un gain de temps ... Vous pouvez rechercher ce thème plus

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

Discussions similaires

  1. Calcul des stats sur postgrsql
    Par juniorYanis dans le forum Administration
    Réponses: 3
    Dernier message: 14/10/2013, 18h03
  2. Réponses: 8
    Dernier message: 28/01/2006, 16h53
  3. Calcul des visites sur un site
    Par inferno66667 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 23/11/2005, 10h46
  4. Calcul des stats sur SYS et SYSTEM
    Par orafrance dans le forum Oracle
    Réponses: 8
    Dernier message: 05/10/2005, 16h25
  5. Le calcul des stats dégrade les performances
    Par jo007 dans le forum Oracle
    Réponses: 18
    Dernier message: 15/02/2005, 09h42

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