Re: Postgres delays function returning large set of data - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Postgres delays function returning large set of data
Date
Msg-id 7535.1244225188@sss.pgh.pa.us
Whole thread Raw
In response to Re: Postgres delays function returning large set of data  (flippo00110001 <ddevec@umich.edu>)
List pgsql-hackers
flippo00110001 <ddevec@umich.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


pgsql-hackers by date:

Previous
From: flippo00110001
Date:
Subject: Re: Postgres delays function returning large set of data
Next
From: Aidan Van Dyk
Date:
Subject: Re: PostgreSQL Developer meeting minutes up