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

Requêtes PostgreSQL Discussion :

Index fullText non utilisé (Version 2)


Sujet :

Requêtes PostgreSQL

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 97
    Points : 65
    Points
    65
    Par défaut Index fullText non utilisé (Version 2)
    Bonjour, je viens de voir un post sur un problème de non utilisation d'un index.
    Voici comment j'ai procédé :
    -J'ai fais une table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    A(int id,text monText,tsvector monVecteur);
    - j'ai un index
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE INDEX ndx_text
      ON A using gin(monVecteur);
    - j'ai un trigger before insert
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NEW.monVecteur:= to_tsvector(lower(NEW.monText));
    Lorsque je fais ma requête, l'index n'est pas utilisé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    explain analyze select id
    from A
    where monVecteur @@ to_tsquery(lower('mou'))
    Voici le résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    "Seq Scan on proprietaire_courant  (cost=0.00..4979.84 rows=171 width=4) (actual time=178.913..178.913 rows=0 loops=1)"
    "  Filter: (ddenom_recherche @@ to_tsquery('mou'::text))"
    "Total runtime: 178.945 ms"
    Pourtant, le tsvector est bien renseigné!
    Quelqu'un peut-il me dire quoi faire? (Postgresql 9.0)

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Deux remarques sur l'explain:
    - le nombre estimé de résultats est de 4736 alors que le nbre réel est 10.
    y-a-t-il eu un ANALYZE de la table?

    - le temps d'exécution étant de moins d'1.5ms, la requête est quand même très rapide et il se peut qu'utiliser l'index n'apporte rien.

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 97
    Points : 65
    Points
    65
    Par défaut
    Mea culpa,j'avais fais un explain sur la même requête mais en limitant le résultat à 10. J'ai mis le réel résultat d'explain.

    Ensuite, j'ai lu dans d'autres post que l'index n'était pas forcément utilisé.
    J'ai pour le moment 35 000 lignes mais la base va rapidement croître et atteindre plus de 500 000 lignes.

Discussions similaires

  1. Index fulltext GIN non utilisé
    Par ymoreau dans le forum Requêtes
    Réponses: 8
    Dernier message: 12/10/2011, 10h10
  2. Index BITMAP non utilisé
    Par olap_2001 dans le forum Oracle
    Réponses: 27
    Dernier message: 04/04/2011, 10h11
  3. [Oracle 11g] Index non utilisé par oracle
    Par eryk71 dans le forum SQL
    Réponses: 12
    Dernier message: 17/02/2009, 10h29
  4. index non utilisé
    Par puck78 dans le forum SQL
    Réponses: 10
    Dernier message: 21/01/2009, 14h36
  5. Oracle8i Index Bitmap non utilisé
    Par persam dans le forum SQL
    Réponses: 2
    Dernier message: 20/06/2008, 15h05

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