Статистика idx_scan сбрасывается автоматически (по умолчанию)? - PullRequest
1 голос
/ 06 мая 2019

Я просматривал таблицы (pg_stat_user_indexes и pg_stat_user_tables) и обнаружил множество неиспользуемых индексов.

Но прежде чем подумать о выполнении каких-либо операций по удалению этих индексов, мне нужнопонять, какой период был анализ этих данных (idx_scan), это было с момента создания базы данных?

В таблице pg_stat_database (столбец stats_reset) есть дата, которая обычно сегодняили до 15 дней назад, но мешает ли этот процесс упомянутым выше таблицам?

Команда pg_stat_reset() не выполнена.

Команда pg_stat_reset() очищает таблицы (pg_stat_user_indexes и pg_stat_user_tables)?

Моя цель - понять период сбора данных, чтобы я мог принять решение.

1 Ответ

1 голос
/ 08 мая 2019

Статистика накапливается и сохраняется с момента создания кластера.

Так что, если вы видите, что pg_stat_database.stats_reset регулярно меняется, должен быть кто-то или кто-то, кто делает это явно с помощью функции pg_stat_reset().

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

Лучший способ - делать регулярные снимки и вычислять разницу.

Вы правы в том, что вам следует собирать данные в течение более длительного времени, прежде чем вы сможете определить, может ли индекс быть консервированным или нет. Например, некоторые действия могут выполняться только один раз в месяц, но требуют определенных индексов.

Перед удалением индексов учтите, что индексы также служат другим целям помимо сканирования:

  • Они могут быть UNIQUE или поддерживать ограничение, и в этом случае они служат цели, даже если они никогда не сканируются.

  • Индексы выражений заставляют PostgreSQL собирать статистику о распределении индексированных выражений, что может оказать заметное влияние на планирование запросов и качество ваших планов выполнения.

Вы можете использовать запрос в этом блоге , чтобы найти все индексы, которые вообще не нужны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...