Re: SQL ou plpgsql pour recherche journée travail

From: Alain <eurlix(dot)alain(at)free(dot)fr>
To: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: SQL ou plpgsql pour recherche journée travail
Date: 2007-11-13 18:03:07
Message-ID: 20071113190307.a841e550.eurlix.alain@free.fr
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

Bonsoir,

On Tue, 13 Nov 2007 17:40:08 +0100
Claude Castello <ccastello(at)athmo(dot)eu> wrote:

> Bonjour,
>
> J'ai besoin d'optimiser une requête :
>
> J'ai une table "activite" contenant les différentes activités d'une
> journée de travail :
> create table activite (
> id_activite serial,
> debut timestamp,
> fin timestamp,
> type integer
> );
> J'ai besoin de caractériser une activité au cours de la journée de
> travail. Pour cela, avant de me lancer dans des calculs "métier", je
> dois récupérer le début et la fin de la journée de travail sachant
> qu'une journée peut commencer à 22h et se terminer le lendemain à 6
> heures... Donc hors de question d'utiliser la date seulement.
> Pour simplifier un peu le problème, on peut considérer que les activités
> se suivent.
>
> J'ai écrit une procédure stockée qui va chercher l'activité précédente
> et l'activité suivante.Pour chacune de ses activités, je rappelle la
> même procédure stockée. Lorsque la procédure stockée ne trouve rien,
> j'ai obtenu le début et la fin de ma journée.
> C'est très, trop long !
> Pourriez-vous me guider un peu pour résoudre cette problématique
> relativement courante ?
>
> Merci par avance.
> Clo

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.
Pour moi, les résultats ont été époustouflants !
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.

à suivre,
Cordialement,
--
Alain <eurlix(dot)alain(at)free(dot)fr>

In response to

Responses

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Guillaume Lelarge 2007-11-13 18:31:03 Re: [pgsql-fr-generale] SQL ou plpgsql pour recherche journée travail
Previous Message Jean-Paul Argudo 2007-11-13 17:10:26 Re: [pgsql-fr-generale] SQL ou plpgsql pour recherche journée travail