Задачи эксперимента
1) Оценить степень влияния регулярного выполнения vacuum/analyze на производительность СУБД.
2) Оценить степень влияния распухания таблицы на производительность СУБД.
Реализация эксперимента
Одна итерация теста состоит из транзакции select/insert/update/delete ( количество строк в таблицах ~1 000 000 ) .
Количество итераций = 1000.
Оцениваемые параметры
Общее время выполнения ( total_exec_time представления pg_stat_statements)
Количество запросов ( calls представления pg_stat_statements )
Количество результирующих строк ( rows представления pg_stat_statements )
Общее число прочитанных разделяемых блоков ( shared_blks_read представления pg_stat_statements )
Общее число "загрязнённых" разделяемых блоков ( shared_blk_dirtied представления pg_stat_statements )
Общее число записанных разделяемых блоков ( shared_blk_written представления pg_stat_statements )
Количество транзакций ( xact_commit представления pg_stat_database )
Метрика производительности СУБД ( CPI )
Результаты эксперимента
Эталонный тест - vacuum + analyze после каждой итерации

Тест без выполнения vacuum + analyze после каждой итерации

Сравнение результатов с "Эталонный тест - vacuum + analyze после каждой итерации"
Время выполнения теста - незначительно уменьшилось
Объем обработанных разделяемых блоков - значительно увеличился
Производительность - существенно уменьшилась
Фрагментация 11%

Сравнение результатов с "Тест без выполнения vacuum + analyze после каждой итерации"
Время выполнения теста - существенно увеличилось
Объем обработанных разделяемых блоков - существенно увеличился
Производительность - существенно уменьшилась
Фрагментация 100%

Сравнение результатов с "Тест без выполнения vacuum + analyze после каждой итерации"
Время выполнения теста - существенно увеличилось
Объем обработанных разделяемых блоков - существенно увеличился
Производительность - существенно уменьшилась
Итоги
Выполнение vacuum+analyze после массовых изменений данных существенно увеличивает производительность СУБД, хотя общее время выполнения и несколько возрастает.
Даже относительно небольшая фрагментация оказывает существенное влияние на производительность СУБД.
Дальнейшее увеличение фрагментации не оказывает заметного влияния на производительность СУБД.
