Re: A bit confused about "pgsql_tmp" vs "temp tablespace" - Mailing list pgsql-general

From Thomas Kellerer
Subject Re: A bit confused about "pgsql_tmp" vs "temp tablespace"
Date
Msg-id 9bcde31d-e9c2-c391-746f-913c0403a6e4@gmx.net
Whole thread Raw
In response to Re: A bit confused about "pgsql_tmp" vs "temp tablespace"  (Adrian Klaver <adrian.klaver@aklaver.com>)
Responses Re: A bit confused about "pgsql_tmp" vs "temp tablespace"
Re: A bit confused about "pgsql_tmp" vs "temp tablespace"
List pgsql-general
Adrian Klaver schrieb am 18.07.2018 um 15:06:
>> In the chapter "Database File layout" the pgsql_tmp is explained as follows:
>>
>>     Temporary files (for operations such as sorting more data than can fit in memory)
>>     are created within PGDATA/base/pgsql_tmp, or within a pgsql_tmp subdirectory of
>>     a tablespace directory
>>
>> However the documentation for "temp_tablespaces" states:
>>
>>     Temporary files for purposes such as sorting large data sets are also created
>>     in these tablespaces.
>>
>>
>> How do these two things related to each other?
>>
>> Does this mean that if I do not explicitly create a dedicated "temp tablespace" then the pgsql_tmp subdirectory is
used.
>> But _if_ I do create a temp tablespace (by creating one, and adding it to temp_tablespaces) then the sorting is done
*there*?
> 
> Yes, for those objects that do not have a tablespace specified in their CREATE statement.
>
>>
>> So far I thought that a temp tablespace is only used for temporary tables (and indexes on them) but that paragraph
inthe
 
>> temp_tablespaces documentation seems to indicate otherwise.
> 
> The Database File Layout section you quoted above says the same
> thing. Basically setting temp_tablespaces just overrides where temp
> objects and operation files are placed when a tablespace is not
> specified in their creation.

Thanks.

I understand the relation between explicitly CREATEd objects and the temp tablespace(s).

But what about the (temp) space needed for e.g. sorting, grouping or intermediate results from CTEs or derived tables?

Is that also controlled through the temp_tablespaces? 


 


pgsql-general by date:

Previous
From: Adrian Klaver
Date:
Subject: Re: Is it ok to run vacuum full verbose command for live database forthe tables which has more dead tuples?
Next
From: Tom Lane
Date:
Subject: Re: A bit confused about "pgsql_tmp" vs "temp tablespace"