Memory exhausted

From: David Richter <D(dot)Richter(at)DKFZ-heidelberg(dot)de>
To: sg9(at)sg9(dot)de
Subject: Memory exhausted
Date: 2001-06-11 12:25:48
Message-ID: 3B24B8CC.15C55147@DKFZ-heidelberg.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Hello!

I used a self written funtion in plpgsql with a database of 2 Gigabyte
size. My server has 384 Megabytes of RAM.

So I got this error by calling the following function:

psql:restructure.sql:139: FATAL 1: Memory exhausted in AllocSetAlloc()
pqReadData() -- backend closed the channel unexpectedly.
This probably means the backend terminated abnormally
before or while processing the request.
psql:restructure.sql:139: connection to server was lost

In the memory usage program Its shown that the function needs all the
memory.

The function fetches all XXX rows of a table
and writes a value to another table

CREATE FUNCTION series_image () RETURNS integer AS '
DECLARE

psr_rec record;
i integer := 0;

BEGIN
FOR psr_rec IN SELECT * FROM relseries_image000 LOOP
UPDATE image
SET seriesoid = psr_rec.parentoid
WHERE chilioid = psr_rec.childoid;
i := i + 1;
END LOOP;
IF NOT FOUND THEN RETURN -1;
ELSE RETURN i;
END IF;
END;

' LANGUAGE 'plpgsql';

What could I optimize in this function above?
I tried the Select statement in the psql command and it has taken 20
minutes. I estimate that there are more than 400000 rows in the table.
Then it breakes , the announcment appears: malloc: Resource temporarily
unavailable
and psql is crashed.

Should I change the postmaster parameters?
actually they are :
./postmaster -i -S -D/usr/local/pgsql/data -B 256 -o -e -o -F

What can I do?
Thanks in advance for any advice

David

Attachment Content-Type Size
D.Richter.vcf text/x-vcard 468 bytes

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Jeff Boes 2001-06-11 13:10:18 Re: rpt
Previous Message Hartwig Jens 2001-06-11 08:41:15 RE: GRANT EXECUTE