🔬 Обновление статистики в PostgreSQL. Те кто долго работал с СУБД MS SQL, привыкли настраивать планы обслуживания с обновлением статистики. Актуальная статистика очень важная вещь, ведь именно на нее полагается планировщик при построении запроса. И чем актуальнее статистика, тем быстрее может выполниться ваш запрос. Возникает вопрос: где это настроить в PostgreSQL, и нужно ли? Ответ: в общем случае настраивать обновление статистики в PostgreSQL так как это делали в MS SQL не нужно. В PostgreSQL есть всем нам известный фоновый процесс autovacuum, и именно он в момент удаления неактуальных версий строк обновляет ещё и статистику по таблице. Лишнее подтверждение того, что autovacuum отключать ни в коем случае нельзя, а нужно его грамотно настраивать 😉 Если вы считаете, что ваша статистика все равно не актуальна, то тут, скорее всего, вам в первую очередь надо смотреть на то как у вас справляется со своей задачей autovacuum, и в зависимости от вашей ситуации менять его настройки. Обновление статистики можно сделать и принудительно вручную с помощью команды: ANALYZE; Без указания параметров команда собирает статистику по всем таблицам базы данных и сохраняет результаты в системном каталоге pg_statistic. Если вы хотите собрать статистику по конкретной таблице, то нужно ввести следующую команду: ANALYZE имя_таблицы; Более того, вы можете задать и конкректное имя колонки в таблице, и тогда статистика будет собранная только по этой колонке. Для этого используйте следующую команду: ANALYZE (имя_таблицы имя_колонки); Более подробно о команде ANALYZE вы можете почитать в документации по ссылке: https://postgrespro.ru/docs/postgrespro/15/sql-analyze

Теги других блогов: статистика обновление PostgreSQL