Автоматическая сборка мусора включена в PostgreSQL 9.0 по умолчанию и в целом хорошо делает свою работу. Однако «в целом» не означает «полностью», так как невозможно предугадать все желания пользователя, например каждый раз выбирать наилучшее время выполнения работ по обслуживанию базы данных. Если процесс autovacuum запущен, он будет автоматически «просыпаться» каждые autovacuum_naptime секунд и определять, запускать ЛИ команды VACUUM и/или ANALYZE. Одновременно могут работать не более чем autovacuum_max_ workers процессов обслуживания. Эти процессы, зависимые от autovacuun, выполняя ввод-вывод, накапливают очки стоимости, пока количество очков не достигнет autovacuum_vacuum_cost_iimit, после чего процессы «засыпают» на время, равное Autovacuum_vacuum_cost_ delay. Таким образом контролируется потребление ресурсов и предотвращается монополизация процессом Autovacuum Всего дискового ввода-вывода. Увеличивая время Autovacuum_vacuum_cost_deiay, Мы замедляем работу vacuum, чтобы не снизить влияние на работу базы данных. Процесс Autovacuum Выполнит команду Analyze, Если сделано хотя бы Autovacuum_analyze_threshold Изменений и обновлено столько записей относительно общего количества записей в таблице, сколько определяется параметром Autovacuum_ analyze_scale_factor. Процесс Autovacuum Выполнит команду Vacuum, Если произведено хотя бы AutovacuutL_vacuum_threshoid Изменений и обновлено столько записей относительно общего количества записей в таблице, сколько определяется параметром Autovacuum_ Если задать параметр iog_autovacuum_min_duration, TO каждый раз, когда процесс Autovacuum Будет выполняться дольше установленного значения, это будет отражаться в логе сервера примерно так: Большая часть вышеприведенных глобальных параметров может быть также установлена для конкретных таблиц. Допустим, процесс сборки мусора не должен затрагивать таблицу Big_tabie. Для этого надо выполнить следующее:
Рубрика: Женский интерес