Re: planer en delire !!!

From: Jean-Christophe ARNU (JX) <arnu(at)paratronic(dot)fr>
To: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: planer en delire !!!
Date: 2003-08-28 14:58:15
Message-ID: 20030828165815.22dc1811.arnu@paratronic.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

Le Wed, 27 Aug 2003 16:03:51 +0200
Daniel <daniel(at)12move(dot)be> me disait que :

> salut
> comme je l'avais deja dit bonne idee de faire une liste en francais
>
> je commence tout de suite avec une question de _planer_ et postgresql
> 7.3.3 (debian)
> j'ai une table matable(serie serial,a int,b, int c int,d int,e int,f
> int)(>5000000 de lignes), index unique sur (serie) + index unique sur
> (a,b,c,d,e,f) et index sur (a)
> lorsque je fais explain select * from matable where a=12; le planer ne
> veut pas utiliser les index pourtant il y a un index actif pour la
> colonne a, par contre si je fais explain select * from matable where
> a=12 and b=14; la sa marche il utilise l'index (a,b,c,d,e,f).avant
> j'utilisais postgres 7.2.1 et cela fanctionnais tres bien.
> je sais qu'il y a une discution sur ce sujet sur la liste anglo.
> (pourtant sans solution).
> j'ai du forcer l'utilisation des index dans le fichier de config pour
> avoir le resultat voulu
> si qlq'un a une autre solution

Salut Daniel,

En fait, d'aprés ce que j'ai cru comprendre, le planner utilise les
statistiques des tables et index afin de choisir la manière dont il va
construire sa requête. Dans le cas d'une table où il y a peu de lignes dans ta
table, le planner choisira à coup sûr (si tu as un nombre de colonnes
limitées) de taper directement dans la table plutôt que de charger l'index,
puis la table. Lorsque tu modifies le fichier de configuration de PG afin de
l'obliger à utiliser les index, tu restreint le planner dans son efficacité
(AMHA) en l'obligeant à faire deux parcours (Index+table).
Si ta table est pleine de lignes (bien peuplée donc), et que ton
explain ne change pas il y a fort à parier que les stats ne soient pas à jour.
Il te sera donc nécessaire de faire un VACUUM ANALYZE sur la table ou un
REINDEX sur les index qui t'intéressent ou carrément sur la table.

Voilà, c'est ce que j'ai pu observer lors de mes diverses expériences
avec PG et que certaines docs piochées de droite et de gauche, on confirmé.

A+

--
Jean-Christophe ARNU

In response to

Responses

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Daniel 2003-08-28 15:23:14 Re: planer en delire !!!
Previous Message Francois Suter 2003-08-28 14:34:46 Re: planer en delire !!!