Автоматическая очистка

Эти параметры управляют поведением функции автоматической очистки. Дополнительную информацию см. в подразделе Процесс «Автовакуум». Обратите внимание, что многие из этих параметров могут быть переопределены на уровне таблицы; см. подраздел Параметры хранения.

autovacuum (boolean)

Управляет состоянием процесса запуска автовакуума. По умолчанию этот процесс включен, однако для работы автоочистки также необходимо включить track_counts. Этот параметр можно задать только в файле qhb.conf или в командной строке сервера. Тем не менее автоматическую очистку можно выключить для отдельных таблиц, изменив их параметры хранения.

Обратите внимание, что даже когда этот параметр выключен, система будет при необходимости запускать процессы автовакуума, чтобы предотвратить зацикливание идентификатора транзакции. Дополнительную информацию см. в подразделе Предотвращение ошибок зацикливания идентификаторов транзакций.

autovacuum_max_workers (integer)

Задает максимальное количество процессов автовакуума (кроме, собственно, его запуска), которые могут выполняться одновременно. По умолчанию это количество равно трем. Этот параметр можно задать только при запуске сервера.

autovacuum_naptime (integer)

Задает минимальную задержку между запусками автоочистки в любой отдельно взятой базе данных. В каждом раунде процесс «Автовакуум» проверяет базу данных и при необходимости выдает команды VACUUM и ANALYZE для таблиц в этой базе. Если это значение указано без единиц измерения, оно считается заданным в секундах. Значение по умолчанию — одна минута (1min). Этот параметр можно задать только в файле qhb.conf или в командной строке сервера.

autovacuum_vacuum_threshold (integer)

Задает минимальное количество обновленных или удаленных кортежей, требующееся для запуска команды VACUUM в отдельно взятой таблице. Значение по умолчанию — 50 кортежей. Этот параметр можно задать только в файле qhb.conf или в командной строке сервера. Тем не менее его значение можно переопределить для отдельных таблиц, изменив их параметры хранения.

autovacuum_vacuum_insert_threshold (integer)

Задает количество добавленных кортежей, требующееся для запуска команды VACUUM в отдельно взятой таблице. Значение по умолчанию — 1000 кортежей. При значении -1 запуск команды VACUUM не будет зависеть от количества добавленных кортежей. Этот параметр можно задать только в файле qhb.conf или в командной строке сервера. Тем не менее его значение можно переопределить для отдельных таблиц, изменив их параметры хранения.

autovacuum_analyze_threshold (integer)

Задает минимальное количество добавленных, обновленных или удаленных кортежей, требующееся для запуска команды ANALYZE в любой отдельно взятой таблице. Значение по умолчанию — 50 кортежей. Этот параметр можно задать только в файле qhb.conf или в командной строке сервера. Тем не менее его значение можно переопределить для отдельных таблиц, изменив их параметры хранения.

autovacuum_vacuum_scale_factor (floating point)

Задает долю от размера таблицы, добавляемую к autovacuum_vacuum_threshold при принятии решения о запуске команды VACUUM. Значение по умолчанию — 0.2 (20% от размера таблицы). Этот параметр можно задать только в файле qhb.conf или в командной строке сервера. Тем не менее его значение можно переопределить для отдельных таблиц, изменив их параметры хранения.

autovacuum_vacuum_insert_scale_factor (floating point)

Задает долю от размера таблицы, добавляемую к autovacuum_vacuum_insert_threshold при принятии решения о запуске команды VACUUM. Значение по умолчанию — 0.2 (20% от размера таблицы). Этот параметр можно задать только в файле qhb.conf или в командной строке сервера. Тем не менее его значение можно переопределить для отдельных таблиц, изменив их параметры хранения.

autovacuum_analyze_scale_factor (floating point)

Задает долю от размера таблицы, добавляемую к autovacuum_analyze_threshold при принятии решения о запуске команды ANALYZE. Значение по умолчанию — 0.1 (10% от размера таблицы). Этот параметр можно задать только в файле qhb.conf или в командной строке сервера. Тем не менее его значение можно переопределить для отдельных таблиц, изменив их параметры хранения.

autovacuum_freeze_max_age (integer)

Задает максимальный возраст (в транзакциях), которого может достичь поле pg_class.relfrozenxid некоторой таблицы, прежде чем будет запущена операция VACUUM для предотвращения зацикливания идентификаторов транзакций в этой таблице. Обратите внимание, что система будет запускать процессы автовакуума для предотвращения зацикливания, даже если в остальном автоматическая очистка выключена.

Очистка также позволяет удалять старые файлы из подкаталога pg_xact, поэтому значение по умолчанию относительно невелико — 200 миллионов транзакций. Этот параметр можно задать только при запуске сервера. Тем не менее его значение можно уменьшить для отдельных таблиц, изменив их параметры хранения. Дополнительную информацию см. в подразделе Предотвращение ошибок зацикливания идентификаторов транзакций.

autovacuum_multixact_freeze_max_age (integer)

Задает максимальный возраст (в мультитранзакциях), которого может достичь поле pg_class.relminmxidнекоторой таблицы, прежде чем будет запущена операция VACUUM для предотвращения зацикливания идентификаторов мультитранзакций в этой таблице. Обратите внимание, что система будет запускать процессы автовакуума для предотвращения зацикливания, даже если в остальном автоматическая очистка выключена.

Очистка мультитранзакций также позволяет удалять старые файлы из подкаталогов pg_multixact/members и pg_multixact/offsets, поэтому значение по умолчанию относительно невелико — 400 миллионов мультитранзакций. Этот параметр можно задать только при запуске сервера. Тем не менее его можно уменьшить для отдельных таблиц, изменив их параметры хранения. Дополнительную информацию см. в подразделе Мультитранзакции и зацикливание.

autovacuum_vacuum_cost_delay (floating point)

Задает задержку при превышении предела стоимости, которая будет использоваться при автоматических операциях VACUUM. При значении -1 будет применена обычная задержка vacuum_cost_delay. Если это значение указано без единиц измерения, оно считается заданным в миллисекундах. Значение по умолчанию — 2 миллисекунды. Этот параметр можно задать только в файле qhb.conf или в командной строке сервера. Тем не менее его значение можно переопределить для отдельных таблиц, изменив их параметры хранения.

autovacuum_vacuum_cost_limit (integer)

Указывает предельное значение стоимости, которое будет использоваться при автоматических операциях VACUUM. При значении -1 (по умолчанию), будет применена обычная задержка vacuum_cost_limit. Обратите внимание, что если запущенных рабочих процессов автовакуума больше одного, это значение пропорционально распределяется между ними, так что суммарный предел стоимости для всех рабочих процессов не превышает значения этой переменной. Этот параметр можно задать только в файле qhb.conf или в командной строке сервера. Тем не менее его значение можно переопределить для отдельных таблиц, изменив их параметры хранения.