PLPERL Function very Slow

From: Alex <alex(at)meerkatsoft(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: PLPERL Function very Slow
Date: 2006-08-30 14:26:28
Message-ID: 44F5A014.3070409@meerkatsoft.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi,
i am having a problem with a plperl function i am trying to write.
(using 8.1.4)

the function does a select (ca 30,000 rows) using

spi_query($query); while (my $row = spi_fetchrow($handle))

and within the while loop inserts the record into a table using
spi_exec_query($query);

The initial select is pretty fast and first inserts very fast, but after
a few thousand inserts the inserts start to slow down until it crawls.
Writing the same in a normal perl script takes less than 90 seconds
while the function is taking 10 minutes.

My guess is that it is all memory related and was wondering if there is
a memory leak (as I read in some mails) or if there is a better way to
do what I want.

Also is there a way to commit transactions within a stored procedure /
function? I noticed that if I do a delete and insert within the same
function that the deletes are not committed until the function returns.

Thanks for any advice.

Alex

Responses

Browse pgsql-general by date

  From Date Subject
Next Message AgentM 2006-08-30 14:42:21 Re: PostgreSQL on system with root as only user
Previous Message Martijn van Oosterhout 2006-08-30 13:48:22 Re: PostgreSQL on system with root as only user