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

Oracle Discussion :

Job de nuit et histogrammes [11gR2]


Sujet :

Oracle

  1. #1
    Membre régulier
    Homme Profil pro
    Consultant
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 88
    Points
    88
    Par défaut Job de nuit et histogrammes
    Bonjour
    Comment réagir face aux colonnes dont les histogrammes n'ont pas été calculés par le job de nuit ayant le paramétrage par défaut ?
    Oracle n'arrive pas à détecter que ces colonbes qui passent à la trappe méritent d'avoir des histogrammes pour stabiliser le plan.
    Faut il modifier le paramétrage par defaut de dbms_stats (method_opt) ?
    Faut-il rajouter une autre surcouche pour calculer les stats ?

  2. #2
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    La méthode par défaut peut être consultée avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SQL> select dbms_stats.get_param('method_opt') from dual;
     
    DBMS_STATS.GET_PARAM('METHOD_OPT')
    --------------------------------------------------------------------------------
    FOR ALL COLUMNS SIZE AUTO
    Ici, Oracle décide des histogrammes qu'il crée en fonction de la répartition des valeurs, et de l'utilisation des colonnes.

    Lorsque j'ai seulement quelques histogrammes nécessaires, je préfère ne pas créer d'histogrammes avec le paramétrage par défaut (FOR ALL COLUMNS SIZE 1) et définir des préférences au niveau table (dbms_stats.set_table_prefs).
    Ou alors mettre par défaut FOR ALL COLUMNS SIZE REPEAT et calculer les histogrammes nécessaires.

    Cordialement,
    Franck.
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

  3. #3
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    536
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 536
    Points : 1 359
    Points
    1 359
    Par défaut
    Citation Envoyé par devkais Voir le message
    Bonjour
    Comment réagir face aux colonnes dont les histogrammes n'ont pas été calculés par le job de nuit ayant le paramétrage par défaut ?
    Oracle n'arrive pas à détecter que ces colonbes qui passent à la trappe méritent d'avoir des histogrammes pour stabiliser le plan.
    Normal; faudrait que le job de nuit lorsqu'il tourne attaque une base de données qui contient à ce moment précis où le job des stats tourne des colonnes dispersées (skewed columns) qui méritent d'avoir des histogrammes.

    C'est là un problème critique des histogrammes. Pensez par exemple à une table de statut de vente qui dans la journée a, entre 10h-16h, 300 bons de commandes dans un statut ''en attente d'expédition'' mais qui finiront par prendre le statut définitif "expédié" à partir de 17h00.

    Dans la journée le select suivant aurait bien pu bénéficier des histogrammes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select * from vente where status = 'en attente d'expédition"
    mais, comme à partir de 17h le statut ''en attente d'expédition" n'existe pas, le job de nuit ne calculera alors pas les histogrammes sur la colonne statut.

    Et oui, vous pourriez, peut-être, être amené à réfléchir au moment adéquat du calcul des stats pour vos tables critiques
    Bien Respectueusement
    www.hourim.wordpress.com

    "Ce qui se conçoit bien s'énonce clairement"

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

Discussions similaires

  1. Créer une job de nuit
    Par DEV-10 dans le forum Développement
    Réponses: 3
    Dernier message: 04/08/2009, 20h08
  2. Job chaque nuit à 05h00
    Par borgfabr dans le forum SQL
    Réponses: 1
    Dernier message: 21/11/2007, 14h55
  3. Infos jobs
    Par Colargole dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/12/2003, 11h09
  4. Etre notifié de l'ajout d'un job dans le spooler
    Par chtiot dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 12/11/2003, 21h52
  5. [TChart] comment remplir un histogramme avec du rouge strié.
    Par :GREG: dans le forum Composants VCL
    Réponses: 2
    Dernier message: 12/08/2002, 09h37

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