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 :

Explain Plan : nombre de lignes estimé incorrect


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 20
    Par défaut Explain Plan : nombre de lignes estimé incorrect
    Bonjour à tous,

    J'ai découvert une bizarrerie sur une base de données Oracle 9iR2 (9.2.0.7.0). J'espère trouver quelqu'un qui pourrait m'expliquer... Moi je ne vois vraiment pas :

    Voici mon problème : Imaginons une table A avec différents champs dont une clé primaire. Dans cette table, j'ai une colonne nommé "type" (c'est peut-être de ce nom que vient le pb : mot clé oracle ?). Il existe un index sur cette colonne, index simple et non unique. Cette colonne peut prendre 6 valeurs différentes. Voici les valeurs possibles et le nombre d'instance dans la table A :
    'Client' 1
    'Résidentiel' 3
    'Société' 1
    'entité' 5790
    'interne' 1
    'societe' 481425

    Si je regarde le plan d'exécution de la requête select * from A where type = 'entité', le nombre de ligne en retour estimé est de 81K ! On a pourtant que 5790 ligne retournée. Ce nombre de ligne retournée est toujours de 81k quelque soit la valeur recherchée dans la colonne type. J'ai testé sur une base différente, on a pas le problème, le nombre de ligne estimé est correcte. Notre client a par contre ce problème sur sa base de recette, mais pas en production...

    Je précise que les stats ont été passées en mode full sur les index et tables.

    J'ai tenté de recréer une colonne "x_type" reprenant la même valeur que la colonne "type" avec le même index : le problème ne se pose plus.

    Merci d'avance pour vos éventuels éclaircissements.

    Aurélien

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    pour tenir compte des valeurs utilisées il faudrait calculer les stats plus précisément. C'est le role des histogrammes.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 20
    Par défaut
    Pourtant, j'ai passer les stats en mode full sur les index de la table et sur la table elle-même :

    DBMS_STATS.GATHER_TABLE_STATS(schema,table,estimate_percent => 100);

    DBMS_STATS.GATHER_INDEX_STATS(schema,index,estimate_percent => 100);

    Je ne vois pas comment calculer plus précisément... Qu'entends-tu par là stp ?

    merci

  4. #4
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    recherche histogram dans la doc

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 20
    Par défaut
    En effet, le pb de se pose plus après calcul de l'histogramme.

    Merci !

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

Discussions similaires

  1. Estimation du nombre de lignes dans la table de fait : modèle en etoile
    Par fifi_dz dans le forum Conception/Modélisation
    Réponses: 4
    Dernier message: 05/02/2013, 23h39
  2. nombre de lignes retournés incorrecte
    Par midotoon dans le forum JDBC
    Réponses: 1
    Dernier message: 11/06/2009, 16h47
  3. Materialisation, estimation nombre de lignes
    Par pacmann dans le forum SQL
    Réponses: 4
    Dernier message: 25/05/2009, 15h40
  4. Réponses: 2
    Dernier message: 02/03/2004, 20h38
  5. [TListView] Compter le nombre de lignes
    Par agh dans le forum Composants VCL
    Réponses: 2
    Dernier message: 30/09/2002, 21h25

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