PostgreSQL. default_statistics_target

Продолжаю изучать конфигурационные параметры PostgreSQL (конкретно сейчас – PostgreSQL 10). В этот раз рассмотрю еще один важный параметр default_statistics_target.

Конфигурационные параметры PostgreSQL лежат в каталоге с данными (PGDATA) в файле postgresql.conf.

Посмотреть, где находится этот конфигурационный файл можно следующим образом — в pqls (или в любом другом клиенте PostgreSQL) выполните команду show config_file:

postgres@demo# show config_file;
              config_file              
---------------------------------------
 /usr/local/pgsql/data/postgresql.conf

И получите точный адрес до конфиг.файла postgresql.conf.

  • Параметр: default_statistics_target
  • Раздел: Настройка запросов / Другие параметры планировщика
  • Изменение: user, пользователи могут менять значение для своего сеанса (командой SET)
  • Принимаемое значение: integer
  • Минимальное значение: 1
  • Максимальное значение: 10000
  • Значение по умолчанию: 100
  • Взаимосвязь: Параметр default_statistics_target используется для хранения: списка самых популярных значений (most_common_values), гистаграмм остальных значений (histogram_bounds) и при формировании выборки при анализе данных из таблцы (default_statistics_target * 300).
  • Описание: Устанавливает ориентир статистики по умолчанию. Это значение распространяется на столбцы таблицы, для которых ориентир статистики не задан явно через ALTER TABLE SET STATISTICS.

Без детального разбора этого не понятно, так что лучше самостоятельно покопаться и раорзатбься. Я пока в процессе этого.

  • Как посмотреть:

Командой:

SHOW default_statistics_target;
(отработает как для psql, так и в других клиентах):

DST show

Запросом:

select * from pg_settings s where name = 'default_statistics_target' \gx 

DST settings

  • Эксперименты:

Сейчас микро-эксперимент проведу — задам значение, больше максимального, и посмотрю, что система мне выдаст. Ожидаемо, появляется сообщение об ошибке:

psql error 10001


Be the first to comment

Leave a Reply

Ваш Mail не будет опубликован.


*