From: | Michel Payan <michel(dot)payan(at)gmail(dot)com> |
---|---|
To: | Paul Poirel <poirelpa(at)gmail(dot)com> |
Cc: | Pgsql Fr Generale <pgsql-fr-generale(at)postgresql(dot)org> |
Subject: | Re: UPDATE de plus en plus long |
Date: | 2013-11-19 13:29:34 |
Message-ID: | CAPFLA-Poy5s10tMyf4pHdN0=gdatPBD48hB79xgfTzw9Q8bjMQ@mail.gmail.com |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-fr-generale |
Une piste, la gestion de version de ligne sous PG ...
Le 19 novembre 2013 14:08, Paul Poirel <poirelpa(at)gmail(dot)com> a écrit :
> Bonjour,
>
> Je rencontre un problème : dans une boucle, une requête UPDATE sur une
> seule ligne prend de plus en plus de temps.
>
> J'ai essayé de simplifier le problème au mieux :
>
> CREATE OR REPLACE FUNCTION test() RETURNS VOID AS
> $BODY$
> DECLARE
> t timestamp;
> BEGIN
> CREATE TABLE TBL_TEST (N INTEGER NOT NULL);
> INSERT INTO TBL_TEST (N) VALUES (0);
> for i IN 0..10000 LOOP
> t = clock_timestamp();
> UPDATE TBL_TEST SET N = 0;
> raise notice 't %',EXTRACT(MILLISECONDS FROM(clock_timestamp() -
> t));
> END LOOP;
> DROP TABLE TBL_TEST;
> END;
> $BODY$
> LANGUAGE plpgsql;
>
> Sur ma machine, la première itération prend 0.371ms. Les suivantes sont
> autour de 0.07 ms, puis le temps augmente graduellement.
> Au bout de 10 000 itérations, la requête prend environ 0.4ms.
>
> Voyez-vous une raison à cette augmentation du temps d'exécution de la
> requête ?
>
> Merci d'avance pour votre aide :)
>
> Paul
>
--
*dbSQWare |* www.dbsqware.com *|* *Exploitez vos bases de données en toute
sérénité …*
From | Date | Subject | |
---|---|---|---|
Next Message | Paul Poirel | 2013-11-19 13:39:33 | Re: UPDATE de plus en plus long |
Previous Message | Michael Paquier | 2013-11-19 13:16:37 | Re: UPDATE de plus en plus long |