Проверка статистики целей в PostgreSQL
Я искал, но не смог найти простой, прямой ответ на этот вопрос. Как мне проверить текущие статистические цели, используемые ANALYZE?
2 ответа
Настройка для цели статистики сохраняется для каждого столбца в таблице каталога. 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 - это и целевое число "наиболее распространенных значений", которые нужно собрать, и целевое число бинов гистограммы, которые нужно создать.
Жирный акцент мой.
Это обеспечивает более четкое представление о текущей собираемой статистике
SELECT attrelid::regclass, attname, attstattarget FROM pg_attribute WHERE attstattarget >= 0 order by attstattarget desc;