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 :

[Oracle 9.2] Necessité/utilité du COMPUTE STATISTICS


Sujet :

Administration Oracle

  1. #1
    Membre averti

    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 418
    Points : 328
    Points
    328
    Par défaut [Oracle 9.2] Necessité/utilité du COMPUTE STATISTICS
    Bonjour à tous.

    Je fais actuellement des tests d'index sur une table (85 millions de lignes, 35 Go) afin d'optimiser les temps de traitement.

    Je travaille sur un environnement de développement, importé depuis l'environnement de production. J'ai supprimé les index existants relatifs à cette table pour repartir de zéro.
    J'ai créé 2 index, mais je suis déçu par les résultats obtenus et je suis parfois surpris par la manière dont l'optimiseur d'Oracle les utilise (ou ne les utilise pas, d'ailleurs).

    Les statistiques de ces index n'ont jamais été calculées et je me demandais si cela pouvait avoir une incidence.
    Il me semblait que ces statistiques étaient utiles pour orienter l'optimiseur entre les différents index, ou après modifications du contenu de la base. Or ce contenu ne change pas dans mon environnement de développement, et je n'ai actuellement sur ma table que 2 index, dont un est la clé primaire. J'en viens donc à me demander si je ne devrais pas lancer un COMPUTE STATISTICS sur mes index.

    De plus, peut-on calculer ces stats sans "rebuilder" les index ?

  2. #2
    Membre averti Avatar de Wurlitzer
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 469
    Points : 408
    Points
    408
    Par défaut
    Bien sur que les statistiques sont importantes sur les tables et les index. Si tu n'est pas en mode RULE c'est la dessus qu'Oracle se base pour calculer ses plans.

    Le calcul des statistique n'a rien a voir avec le REBUILD. Quand tu fais un REBUILD il ne calcul pas les stats et pour calculer les stats tu n'as pas besoins de faire un REBUILD.

    Compte tenu du gros volume de ta table tu peux limiter le temps de calculs des stats en utilisant un estimate à 30 % par exemple plutôt que de calculer sur toute la table/index.

    Une dernière précision, si le contenu de la base change pas ou peu cela veut dire que tu n'auras pas besoins de recalculer les stats régulièrement mais il faut quand même les calculer une première fois

  3. #3
    Membre averti

    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 418
    Points : 328
    Points
    328
    Par défaut
    Citation Envoyé par Wurlitzer Voir le message
    Bien sur que les statistiques sont importantes sur les tables et les index. Si tu n'est pas en mode RULE c'est la dessus qu'Oracle se base pour calculer ses plans.
    Heu, on fait comment pour savoir si on est en RULE ou en CHOOSE ? Et c'est quoi la différence ?

    Citation Envoyé par Wurlitzer Voir le message
    Le calcul des statistique n'a rien a voir avec le REBUILD. Quand tu fais un REBUILD il ne calcul pas les stats et pour calculer les stats tu n'as pas besoins de faire un REBUILD.
    La commande que j'ai trouvé en me renseignant était :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER INDEX mon_idx REBUILD COMPUTE STATISTICS
    Vu que j'avais pas le goût de lancer un REBUILD, j'ai tenté sans. J'ai eu droit à un Index modifié en 1µs, mais pas de stats visible dans OEM...
    Du coup, que faut-il lancer comme commande ?

    Citation Envoyé par Wurlitzer Voir le message
    Compte tenu du gros volume de ta table tu peux limiter le temps de calculs des stats en utilisant un estimate à 30 % par exemple plutôt que de calculer sur toute la table/index.
    J'ai vu ça dans OEM, je vais peut-être passer par là.

    Citation Envoyé par Wurlitzer Voir le message
    Une dernière précision, si le contenu de la base change pas ou peu cela veut dire que tu n'auras pas besoins de recalculer les stats régulièrement mais il faut quand même les calculer une première fois
    OK. C'est ce que je commençais à me dire...

    Merci pour les renseignements.

  4. #4
    Membre averti Avatar de Wurlitzer
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 469
    Points : 408
    Points
    408
    Par défaut
    dans les paramètres oracle tu as OPTIMIZER_MODE qui te dis si tu es RULE ou CHOOSE.


    RULE Utilise des règles fixe du genre un index c'est mieux que pas d'index

    CHOOSE est sensé être plus intelligent et vérifier si l'index est vraiment mieux.

    Pour calculer les stats vas voir du coté du package DBMS_STATS

  5. #5
    Membre averti

    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 418
    Points : 328
    Points
    328
    Par défaut
    Citation Envoyé par Wurlitzer
    RULE Utilise des règles fixe du genre un index c'est mieux que pas d'index

    CHOOSE est sensé être plus intelligent et vérifier si l'index est vraiment mieux.
    OK. Merci.
    Citation Envoyé par Wurlitzer
    Pour calculer les stats vas voir du coté du package DBMS_STATS
    Oui, c'est ce que j'ai fait. J'ai lancé l'analyse via OEM, et il m'a sorti ce package

    Merci pour les infos.

    A+

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/06/2011, 23h46
  2. Réponses: 22
    Dernier message: 28/04/2006, 11h58
  3. champs "COMPUTED BY" sous Oracle
    Par lespaul dans le forum Oracle
    Réponses: 7
    Dernier message: 21/10/2005, 17h07
  4. Réponses: 5
    Dernier message: 20/10/2005, 11h42
  5. script d'analyse oracle : compute statistic
    Par davidudy dans le forum Administration
    Réponses: 7
    Dernier message: 05/08/2004, 16h00

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