Alvaro Herrera wrote:
On Tue, Dec 07, 2004 at 12:02:13PM +1100, Neil Conway wrote:
On Mon, 2004-12-06 at 19:37 -0500, Paul Tillotson wrote:
I seem to remember hearing that the memory limit on certain operations,
such as sorts, is not "enforced" (may the hackers correct me if I am
wrong); rather, the planner estimates how much a sort might take by
looking at the statistics for a table.
AFAIK this is not the case.
AFAIK this is indeed the case with hashed aggregation, which uses the
sort_mem (work_mem) parameter to control its operation, but for which it
is not a hard limit.
I concur however that multiple concurrent sorts may consume more memory
than the limit specified for one sort. (Just last week I saw a server
running with sort_mem set to 800 MB ... no wonder the server went belly
up every day at 3.00am, exactly when a lot of reports were being
generated)
Does postgres actually do multiple concurrent sorts within a single
backend? I didn't think it would ever do this, since each backend has
only a single thread. David says that he sees a particular process
start to consume very large amounts of memory, and from my understanding
of postgres, this must be one single query taking a lot of memory, not
"multiple concurrent sorts."
Paul Tillotson
---------------------------(end of broadcast)---------------------------
TIP 7: don't forget to increase your free space map settings