Re: [pgsql-fr-generale] SQL ou plpgsql pour recherche journée travail

From: Guillaume Lelarge <guillaume(at)lelarge(dot)info>
To: Alain <eurlix(dot)alain(at)free(dot)fr>
Cc: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: [pgsql-fr-generale] SQL ou plpgsql pour recherche journée travail
Date: 2007-11-13 18:31:03
Message-ID: 4739ED67.3040507@lelarge.info
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

Alain a écrit :
> [...]
> A mon humble avis,
> - créer un index sur les activites,
> - dans /var/lib/pgsql/data/postgresql.conf, sur "enable_seqscan" enlever le # et
> mettre "off" ald de "on"
> - restart le server
> - voir ce que ça donne !
> je me suis déjà fait pourrir sur cette liste en ayant donné une idée aussi iconoclaste, mais je n'avais rien inventé, j'avais seulement indiqué ce que j'avais retenu d'un excellent article de Josh Berkus (membre du postgesql team, faire une echerche dans Google sur ce nom), qui disait en résumé que les seqscan sont valables sur les petites tables mais à éviter sur les grosses.

Si je puis me permettre, si tu t'es fait pourrir (j'avoue que je ne sais
pas de quel thread tu parles), c'est peut-être si tu as conseillé de
laisser le enable_seqscan à off. Ce qui n'est pas bien (c) (tm). Ceci
dit, entièrement d'accord avec toi qu'un seqscan est à éviter sur les
grosses tables mais qu'ils sont valables sur les petites.

Ensuite, tu peux tester si l'index est pris en compte sans toucher à
enable_seqscan. EXPLAIN est là pour ça (entre autres).

Enfin, pour tester avec enable_seqscan à off, pas besoin d'arrêter le
serveur. Une fois connecté, un simple "SET enable_seqscan TO off;"
suffit et ça évite de pourrir les connexions des autres.

> Pour moi, les résultats ont été époustouflants !

Tu parles de l'index ou du enable_seqscan à off ? Dans le premier cas,
je comprends. Dans le second, tu dois avoir un autre problème.
enable_seqscan à off est intéressant pour tester une ou deux requêtes en
suppliant PG de ne pas utiliser de parcours séquentiel (ce qu'il ne
respectera pas forcément), mais de là à dire que la différence est
époustouflante.

> On doit pouvoir aussi le faire au niveau d'une requéte, mais c'est un peu compliqué pour moi et, pour moi, ça ne pénalise pas de façon sensible les recherches dans les petites tables.

M'étonne pas spécialement. Pour les petites tables, PG doit se moquer de
la valeur du enable_seqscan.

--
Guillaume.
http://www.postgresqlfr.org
http://dalibo.com

In response to

Browse pgsql-fr-generale by date

  From Date Subject
Next Message François Figarola 2007-11-14 07:21:51 Re: Postgres status
Previous Message Alain 2007-11-13 18:03:07 Re: SQL ou plpgsql pour recherche journée travail