Bonjour à tous,
J'ai un serveur de test avec une base de donnée Postgresql (version 8.3) sur une machine Windows XP (désolé, personne n'est parfait).
Je recopie, dans cette base, certaines tables de mon serveur de production.
L'une de ces tables contient environ 2 600 000 lignes.
La moindre requête sur cette "grosse" table prend des temps astronomiques. A titre d'exemple, un simple :
prend 458 secondes (soit 7 minutes 1/2).
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT COUNT(*) FROM ma_grosse_table
Bon, je passerai sur le fait que je trouve très surprenant qu'un SGBD parcours une table pour faire un COUNT(*) sans condition au lieu d'interroger son catalogue (c'est un autre débat, fort intéressant au demeurant, mais qui m'éloigne de mon problème).
Donc, je vous laisse imaginer les temps de certaines requêtes un peu plus complexes. Mes tests prennent des jours.
J'ai pourtant indexé mes champs les plus souvent appelés.
Avec une machine qui a quand même 2Go de RAM, je dois pouvoir allouer un peu plus de mémoire que ce que m'a fait l'installation par défaut de Postgres (que je n'ai pas retouchée), pour gagner en performance.
Mais voilà, je suis une vraie buse en administration, et je ne comprends pas grand chose à tout ce que j'ai pu lire (en français comme en anglais d'ailleurs) sur le net à ce sujet... Il y a tellement de variables, et ça me paraît tellement complexe... Bref, c'est la panade !
Quels paramètres augmenter dans le fichier de configuration, et de quelle taille ?
Que me conseillez-vous pour tenter d'améliorer un peu ces performances (je suis sur une machine de test, donc je ne souhaite pas quelque chose aux petits oignons, mais au moins des requêtes qui tournent un peu plus vite) ?
Merci d'avance de votre aide,
ced
Partager