work_mem, temp_buffers, and temp_file_limit

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

work_mem, temp_buffers, and temp_file_limit

Michael Lewis
I've read the documentation but am unclear on what memory is used when temp_buffers are exceeded by temp tables that are created. Does that also go towards temp_file_limit?

When are temp files (temp_file_limit) cleared out? If there is a big ugly query that uses 8GB of a 10GB limit, and then another query in the same connection wants to use 3GBs of temp files total, will it fail? Or will those earlier temp files have been cleared  or otherwise be ignored?
Reply | Threaded
Open this post in threaded view
|

Re: work_mem, temp_buffers, and temp_file_limit

Tom Lane-2
Michael Lewis <[hidden email]> writes:
> I've read the documentation but am unclear on what memory is used when
> temp_buffers are exceeded by temp tables that are created.

The data gets flushed out to disk storage, or at least kernel disk buffers
(I don't think we'll try to fsync it).

> Does that also go towards temp_file_limit?

No, a "temp file" is distinct from a temporary relation.  Temp files
are used for anonymous transient stuff like a hash join's hash table.

> When are temp files (temp_file_limit) cleared out?

At the end of the query that used them.

                        regards, tom lane