Проверка целей статистики в PostgreSQL

Я искал, но не смог найти простой, прямой ответ на этот вопрос. Как проверить текущие целевые показатели статистики, используемые ANALYZE?

Ответ 1

Настройка для цели статистики сохраняется для каждого столбца в таблице каталога pg_attribute. Вы можете установить это так:

ALTER TABLE myschama.mytable ALTER mycolumn SET STATISTICS 127;

И проверьте это так:

SELECT attstattarget
FROM   pg_attribute
WHERE  attrelid = 'myschama.mytable'::regclass
AND    attname = 'mycolumn';

Или вы просто смотрите на скрипт создания в браузере объектов pgAdmin, где он добавляется, если значение отличается от значения по умолчанию в default_statistics_target.

Я цитирую руководство по attstattarget:

attstattarget контролирует уровень детализации статистики, собранной для этого столбца ANALYZE. Нулевое значение указывает, что статистика не должна собираться. Отрицательное значение говорит об использовании целевого показателя системной статистики по умолчанию. Точное значение положительных значений зависит от типа данных. Для скалярных типов данных attstattarget - это и целевое число "наиболее распространенных значений", которые нужно собрать, и целевое число бинов гистограммы, которые нужно создать.

Жирный акцент мой.

Ответ 2

Это обеспечивает более чистый просмотр текущей статистики, собираемой

SELECT attrelid::regclass, attname, attstattarget FROM pg_attribute WHERE attstattarget >= 0 order by attstattarget desc;