|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre régulier
![]() Inscription : mai 2005 Messages : 147 ![]() |
Bonjour à tous.
J'ai fait un explain sur une requête sous Oracle et sous Postgre (la même traduite suivant que j'utilise Oracle ou PostgreSQL) que je vous donne (version Postgre): Code :
Je ne sais pas comment le faire pour lui faire utiliser cet index. Y a t il un moyen de le forcer à l'utiliser ou de lui rappeller qu'il existe un index qu'il pourrait accessoirement utiliser? Merci d'avance de me répondre. champijulie. |
||
|
|
00
|
|
|
#2 |
|
Membre régulier
![]() Inscription : mai 2005 Messages : 147 ![]() |
J'ai constaté un petit truc rigolo
J'exécute cette requête sur trois bases différentes par la taille mais qui ont la même structure: pour la plus petite base : utilisation de 2 index pour la moyenne base : utilisation d'un seul index pour la grosse base : aucune utilisation d'index Alors que ce sont les mêmes tables avec les mêmes index et la même requête. Et là, j'avoue que je ne comprend pas. Je ne sais pas quoi penser... champijulie |
|
|
00
|
|
|
#3 |
|
Expert Confirmé Sénior
![]() ![]() Inscription : mai 2004 Messages : 4 490 ![]() |
Bonjour,
pour pouvoir choisir une stratégie efficace d'exécution des requêtes utilisateurs, Postgres a besoin de stats sur les tailles (nb d'enregistrements) des tables, les indexes, etc. Pour constituer ces stats, il faut lancer assez régulièrement la commande suivante :
__________________
FAQ XML ------------ « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser » Giacomo Leopardi |
|
|
00
|
|
|
#4 |
|
Membre régulier
![]() Inscription : mai 2005 Messages : 147 ![]() |
Je viens d'en faire un mais il bloque sur une violation d'index dans la table pg_statistic du schéma pg_catalog qui est un schéma système auquel je n'ai pas touché.
Je ne sais pas quoi faire pour remédier à cette erreur. Il me marque: ERROR: duplicate key violates unique constraint "pg_statistic_relid_att_index" J'essaie depuis tout à l'heure de voir d'où ça peut provenir. En efeet, il y a des doublons sur cette table par rapport à l'index mais je ne vois pas comment il aurait pu être inséré. @+ champijulie |
|
|
00
|
|
|
#6 |
|
Membre régulier
![]() Inscription : mai 2005 Messages : 147 ![]() |
Version 8.0.2 pour Windows
|
|
|
00
|
|
|
#7 |
|
Expert Confirmé Sénior
![]() ![]() Inscription : mai 2004 Messages : 4 490 ![]() |
La seule mention de ce problème que j'ai trouvée est cette URL : http://qaix.com/postgresql-database-...dex-read.shtml Avant de faire ce que préconise Tom Lane dans sa réponse, je te conseille quand même de faire une sauvegarde complète de tes bases (on n'est jamais trop prudent)...
__________________
FAQ XML ------------ « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser » Giacomo Leopardi |
|
|
00
|
|
|
#8 |
|
Membre régulier
![]() Inscription : mai 2005 Messages : 147 ![]() |
J'ai suivi son conseil et le tien par la même occasion.
Ca a l'air de fonctionner mais c'est vraiment radical comme solution... Merci beaucoup pour ton aide @ la prochaine champijulie |
|
|
00
|
|
|
#9 |
|
Membre régulier
![]() Inscription : mai 2005 Messages : 147 ![]() |
Ca c'est améliorer dans le sens où maintenant il utilise un peu plus les index mais c'est pas encore gagné car il ne les utilise pas tous et je ne sais pas comment le forcer à les utiliser...
Merci de me répondre champijulie. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com