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
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) |