Re: work_mem = 900MB but Sort Method: external merge Disk: 304008kB - Mailing list pgsql-general

From Tom Lane
Subject Re: work_mem = 900MB but Sort Method: external merge Disk: 304008kB
Date
Msg-id 3175.1298396342@sss.pgh.pa.us
Whole thread Raw
In response to Re: work_mem = 900MB but Sort Method: external merge Disk: 304008kB  (Andreas Kretschmer <akretschmer@spamfence.net>)
List pgsql-general
Andreas Kretschmer <akretschmer@spamfence.net> writes:
> Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> Reid Thompson <Reid.Thompson@ateb.com> writes:
>>> What am I missing that causes this to resort to sorting on disk?
>>
>> The in-memory space required to sort N tuples can be significantly
>> larger than the on-disk space,

> Question: when is the planner making the decision between in-memory and
> on-disk, at planning-time or at execution time with the knowledge about
> the real amount of tuples?

The planner doesn't make that decision.  tuplesort.c always starts in
in-memory mode, and flips to on-disk when the actual amount of data in
its care exceeds work_mem.  The planner guesses whether that will happen
while making cost estimates, but it's only an estimate.

            regards, tom lane

pgsql-general by date:

Previous
From: Reid Thompson
Date:
Subject: Re: work_mem = 900MB but Sort Method: external merge Disk: 304008kB
Next
From: Merlin Moncure
Date:
Subject: Re: Notify rule