PostgreSQL хранит информацию о последнем сборе статистики:
SELECT relname,
last_analyze,
last_autoanalyze,
n_live_tup
FROM pg_stat_user_tables;
last_analyze — когда статистика обновлялась вручную,last_autoanalyze — когда это делал autovacuum.Чтобы быстро найти проблемные таблицы, отсортируем по размеру:
SELECT relname,
n_live_tup,
last_analyze,
last_autoanalyze
FROM pg_stat_user_tables
ORDER BY n_live_tup DESC;
Большая таблица + старый
last_analyze — оптимизатор работает вслепую.В таком случае достаточно обновить статистику:
ANALYZE;
Или точечно, для одной таблицы:
ANALYZE orders;
🔥 Это помогает объяснить внезапную деградацию запросов и понять, почему индекс игнорируется.
➡️ SQL Ready | #совет
