Thread: Work Mem Allocation Questions
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? 2: If work_mem is, say, 30MB, and my query needs 10MB - will Postgres allocate all 30MB, or just the 10MB I need? -- Brad Nicholson 416-673-4106 Database Administrator, Afilias Canada Corp.
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/