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 :

Calcul des stats : Quelle méthode ? [11gR2]


Sujet :

Oracle

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

    Informations forums :
    Inscription : Novembre 2012
    Messages : 149
    Points : 52
    Points
    52
    Par défaut Calcul des stats : Quelle méthode ?
    * Bonjour, *

    J’ai une base de production 11gR2 comme DataWareHouse de 10 To avec chargement et déchargement assez fréquent le jour.

    Quelle politique de calcul de statistiques à adopter ?

    - Calculer les stats 11g une seule fois et les figer une fois pour toute ? : Pas top si la volumétrie change un jour de façon importante… ?
    - Ne rien faire et laisser le job de nuit calculer les stats obsolètes ? : Pas évident si chargement/déchargement fréquent dans la journée… ?
    - Calculer les stats après chaque chargement : Le calcul risque d’être lent …?
    - Pas de stats et activer le dynamic sampling ? Dynamic sampling = manque de précision…?

    Quel choix à faire ? Dans quelles conditions ? Contraintes à prévoir ?

    merci

  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,

    Pour les stats sur le nombre de lignes, et n'est pas nécessaire de les calculer à chaque fois, du moment que les volumes sont représentatifs de manière relative.
    Par exemple s'il y a 4 tables de 100 lignes, une de 1 000 000 lignes et une de 10 000 000 de lignes, les plans d'exécutions ne devraient pas changer si on passe à 2 000 000 et 20 000 000 de lignes.

    En datawarehouse, la cléf de la scalabilité est le partitionnement: il est peut-être possible de ne calculer les stats que sur la dernière partition. Et pour les stats globales, en 11g il y a les stats incrémentales, qui par contre vont prendre de la place dans SYSAUX, mais permettent de mettre à jour le nombre de valeurs distinctes d'une colonne sans relire toutes les partitions.

    Par contre, les stats de valeur minimale et maximales sont très importantes. Par exemple, une colonne DATE qui sera plus grande à chaque chargement. Il est alors possible de fixer la valeur après chaque chargement.

    Dynamic sampling, c'est bien, mais en plus des stats, pas pour les remplacer.

    Il y a aussi la question des histogrammes à se poser...

    Donc si ce n'est pas possible de recalculer les stats après chaque chargement, je dirais:
    0. désactiver le job automatique qui va prendre les stats n'importe quand
    1. calculer les stats à un moment où c'est représentatif - sans histogrammes
    2. mettre à jour les min/max qui changent après le chargement (SET_COLUMN_STATS)
    3. utiliser dynamic sampling pour avoir des stats plus précises sur des prédicats complexes
    4. ajouter des histogrammes seulement sur les colonnes où c'est nécessaire (distribution inégale + prédicats avec literals + dynamic sampling insuffisant)
    5. calculer les stats sur les dernières partitions chargées à chaque chargement, et maintenir les stats globales avec les stats incrémentales - si nécessaire.

    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

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

Discussions similaires

  1. [MySQL] Problème de requête SQL pour calculer des stats
    Par k2006 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 21/05/2009, 18h23
  2. Calcul des stats
    Par DjinnS dans le forum Administration
    Réponses: 9
    Dernier message: 01/02/2008, 13h10
  3. Calcul des stats impossible
    Par Mehdilis dans le forum Oracle
    Réponses: 1
    Dernier message: 07/01/2008, 18h30
  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