Re: Postgres delays function returning large set of data

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: flippo00110001 <ddevec(at)umich(dot)edu>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Postgres delays function returning large set of data
Date: 2009-06-05 18:06:28
Message-ID: 7535.1244225188@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

flippo00110001 <ddevec(at)umich(dot)edu> writes:
> tupstore = tuplestore_begin_heap(true, false, SortMem);

SortMem? What are you testing, 7.4?

But anyway, the question I was going to ask is whether you made sure the
data set you're trying to return fits in memory. If the tuplestore
spills to disk then it's certainly going to be a lot slower than the
function itself is.

I note that you seem to be leaking copies of all the data in the
inner loop --- it'd probably be advisable to do heap_freetuple(tup) to
avoid bloating executor memory with still a third copy of the dataset.

It might also be advisable to rethink your coding boundaries: if
getdata were to return a prefilled tuplestore instead of an array
that has to be converted into a tuplestore, you would at least save
memory space and perhaps some time too.

regards, tom lane

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Aidan Van Dyk 2009-06-05 18:28:22 Re: PostgreSQL Developer meeting minutes up
Previous Message David Fetter 2009-06-05 17:11:53 movavg