Тип: | integer |
По умолчанию: | 65536 (64MB) |
Минимальный: | 1024 (1MB) |
Максимальный: | 2147483647 (2147483647kB) |
Ед. изм: | KB |
Контекст: | user |
Перезапуск: | false |
Задаёт максимальный объём памяти для операций обслуживания БД, в частности VACUUM, CREATE INDEX и ALTER TABLE ADD FOREIGN KEY. По умолчанию его значение — 64 мегабайта (64MB
). Так как в один момент времени в сеансе может выполняться только одна такая операция, и обычно они не запускаются параллельно, это значение вполне может быть гораздо больше work_mem. Увеличение этого значения может привести к ускорению операций очистки и восстановления БД из копии.
Учтите, что когда выполняется автоочистка, этот объём может быть выделен autovacuum_max_workers раз, поэтому не стоит устанавливать значение по умолчанию слишком большим. Возможно, будет лучше управлять объёмом памяти для автоочистки отдельно, изменяя autovacuum_work_mem.
Рекомендации [EN]
Sets the limit for the amount that autovacuum, manual vacuum, bulk index build and other maintenance routines are permitted to use. Setting it to a moderately high value will increase the efficiency of vacuum and other operations. Applications which perform large ETL operations may need to allocate up to 1/4 of RAM to support large bulk vacuums. Note that each autovacuum worker may use this much, so if using multiple autovacuum workers you may want to decrease this value so that they can't claim over 1/8 or 1/4 of available RAM.
На StackOverflow
На pgsql-hackers
- Proposal for Resumable Vacuum (again ...)
- Re: Add the ability to limit the amount of memory that can be allocated to backends.
- Re: Proposal for Resumable Vacuum (again ...)
- Re: [PATCH] Improve amcheck to also check UNIQUE constraint in btree index.
- Re: Making the initial and maximum DSA segment sizes configurable