Обсуждение: work_mem, temp_buffers, and temp_file_limit

Поиск
Список
Период
Сортировка

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?

Re: work_mem, temp_buffers, and temp_file_limit

От
Tom Lane
Дата:
Michael Lewis <mlewis@entrata.com> 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