Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 06/08/2012 13:48:48
- Postgres.0
- Membre
Problème avec les Indexs
Supposons que j'ai une requête de la forme suivante : select * from table where champ1 = value1 And champ2=value2;
Supposons que je dispose d'un index idx1 sur le champ1 et d'un index idx2 sur le champ 2.
Pour quoi postgres n'utilise qu'un seul des deux indexes pour executer la requete.
Comment pourrais-je faire pour qu'il utilise les deux indexs.
Supposons que j'ai rajouté un troisieme index composé idx3(champ1, champ2), pour quoi faut-il supprimer idx1 et idx2 pour que idx3 soit utilisé.
Supposons que je dispose d'une table parttionnée, pourquoi devrait-je avoir les memes index sur les partitions que sur la table chapeau (mère).
Comment je peux dire à postgres d'utiliser les index B-tree et pas les bit-map et vice versa.
Merci
Dernière modification par Postgres.0 (06/08/2012 13:49:50)
Hors ligne
#2 06/08/2012 14:30:52
- rjuju
- Administrateur
Re : Problème avec les Indexs
Bonjour,
si postgres n'utilie pas un index, c'est qu'il est plus rentable de ne pas l'utiliser. Utiliser un index a un coût, et il n'est rentable que dans certains cas, en fonction de la volumétrie de la table, de la sélectivité de l'index... Vous ne pouvez donc pas forcer l'utilisation d'un index ni le choisir, et devez plutôt veiller à ce que les statistiques soient à jour et correctes, ce qui permettra à postgresql de choisir le bon plan d'exécution.
Dans le cas des tables partitionnées, c'est lié au fait qu'un index ne peut pas couvrir plusieurs tables, il est donc obligatoire de définir les index sur chacune des tables héritées (par contre les index sur la table parente sont inutiles, celle-ci étant vide).
Julien.
https://rjuju.github.io/
Hors ligne
#3 06/08/2012 14:48:01
- gleu
- Administrateur
Re : Problème avec les Indexs
Je me suis permis de supprimer l'autre post sur la même question, vu que le post était vide.
Guillaume.
Hors ligne
Pages : 1