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 по дате отправления: