In response to Brad Nicholson <bnichols@ca.afilias.info>:
> 1: Is the default work_mem pre-allocated to the Postgres processes - or
> does it get allocated when needed? Say I have work_mem at 30MB - will
> Postgres allocate that 30MB on connection, or only when it needed by a
> query?
It's allocated on demand and freed when no longer needed.
> 2: If work_mem is, say, 30MB, and my query needs 10MB - will Postgres
> allocate all 30MB, or just the 10MB I need?
Same answer.
Keep in mind that work_mem is not an upper cap, it is a per-sort limit.
Thus a query with 5 sorts could allocate 5 * work_mem. The docs have
a little more detail on this.
--
Bill Moran
http://www.potentialtech.com
http://people.collaborativefusion.com/~wmoran/