| Тип: | integer |
| По умолчанию: | 4096 (4MB) |
| Минимальный: | 64 (64kB) |
| Максимальный: | 2147483647 (2147483647kB) |
| Ед. изм: | KB |
| Контекст: | user |
| Перезапуск: | false |
Задаёт объём памяти, который будет использоваться для внутренних операций сортировки и хеш-таблиц, прежде чем будут задействованы временные файлы на диске. Значение по умолчанию — четыре мегабайта (4MB). Заметьте, что в сложных запросах одновременно могут выполняться несколько операций сортировки или хеширования, так что этот объём памяти будет доступен для каждой операции. Кроме того, такие операции могут выполняться одновременно в разных сеансах. Таким образом, общий объём памяти может многократно превосходить значение work_mem; это следует учитывать, выбирая подходящее значение. Операции сортировки используются для ORDER BY, DISTINCT и соединений слиянием. Хеш-таблицы используются при соединениях и агрегировании по хешу, а также обработке подзапросов IN с применением хеша.
Рекомендации [EN]
На StackOverflow
На pgsql-hackers
- Proposal: "query_work_mem" GUC, to distribute working memory to the query's individual operators
- Should work_mem be stable for a prepared statement?
- Re: Add the ability to limit the amount of memory that can be allocated to backends.
- Re: Increase of maintenance_work_mem limit in 64-bit Windows
- Re: Proposal: "query_work_mem" GUC, to distribute working memory to the query's individual operators
