Re: SETOF performance

Поиск
Список
Период
Сортировка
От Joe Conway
Тема Re: SETOF performance
Дата
Msg-id 40719C31.5030505@joeconway.com
обсуждение исходный текст
Ответ на SETOF performance  (Jeff <threshar@torgo.978.org>)
Список pgsql-performance
Jeff wrote:
> I think it was on this list - someone posted a  message about SETOF
> being slower.  Tom replied saying it was because it needed to create an
> on-disk tuplestore.
>
> I was just looking for some clarification - a SETOF function will always
> write the reslting tuples to disk (Not buffering in say a sort_mem sized
> buffer)?

I think at least part of what you're seeing is normal function call
overhead. As far as tuplestores writing to disk, here's what the source
says:

In src/backend/utils/sort/tuplestore.c
8<---------------------------------------
  * maxKBytes: how much data to store in memory (any data beyond this
  * amount is paged to disk).  When in doubt, use work_mem.
  */
Tuplestorestate *
tuplestore_begin_heap(bool randomAccess, bool interXact, int maxKBytes)
8<---------------------------------------

In src/backend/executor/execQual.c:ExecMakeTableFunctionResult():
8<---------------------------------------
tupstore = tuplestore_begin_heap(true, false, work_mem);
8<---------------------------------------

So up to work_mem (sort_mem in 7.4 and earlier) should be stored in memory.

Joe


В списке pgsql-performance по дате отправления:

Предыдущее
От: "Rosser Schwarz"
Дата:
Сообщение: Re: atrocious update performance
Следующее
От: Chris Kratz
Дата:
Сообщение: Re: Delete performance on delete from table with inherited tables