UPDATE de plus en plus long

From: Paul Poirel <poirelpa(at)gmail(dot)com>
To: pgsql-fr-generale(at)postgresql(dot)org
Subject: UPDATE de plus en plus long
Date: 2013-11-19 13:08:56
Message-ID: CAK9eNFxQB9Lj2nCidL8wCNF3KdsJW2e-n-E7HGUYuHT+3T59yg@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

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

Responses

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Olivier Bernhard 2013-11-19 13:15:16 Re: UPDATE de plus en plus long
Previous Message Guillaume Lelarge 2013-11-18 21:28:28 Re: compilation de postgresql 9.3.1 sur Windows (64 bits)