Сбросить статистику pg_stat_statements (полностью или для одного запроса)
PostgreSQLПроизводительностьКоманда
-- Last reset time and number of entries evicted because the table was full (dealloc)
SELECT dealloc, stats_reset FROM pg_stat_statements_info;
-- Reset a single query only (userid, dbid, queryid; 0 = all)
SELECT pg_stat_statements_reset(0, 0, 5927525816675996975);
-- Reset all statistics
SELECT pg_stat_statements_reset();Что делает
Сбрасывает счётчики pg_stat_statements полностью или по пользователю/базе данных/queryid; pg_stat_statements_info показывает время последнего сброса и сколько записей было вытеснено из-за нехватки места.
Когда использовать
Чтобы начать чистое измерение перед изменением для настройки (индекс, параметр, деплой) или измерить новый план одного запроса изолированно.
Внимание
Сброс нельзя отменить; инструменты мониторинга/APM, опирающиеся на накопительные счётчики, покажут разрыв, поэтому сначала сделайте снимок (см. рецепт про регрессию планов). Если dealloc продолжает расти, pg_stat_statements.max слишком мал (его изменение требует перезапуска). По умолчанию выполнять сброс могут только суперпользователи; выдайте право через GRANT EXECUTE ON FUNCTION.
Связанные материалы
- Найти самые дорогие запросы (pg_stat_statements: общее и среднее время)
- Найти запросы, создающие дисковый I/O, временные файлы и WAL (pg_stat_statements)
- Журналировать планы выполнения медленных запросов через auto_explain
- Детально разобрать план через EXPLAIN (ANALYZE, BUFFERS, SETTINGS, WAL)
- Выявить регрессии планов по queryid (сравнение снимков pg_stat_statements)
- Проверить ёмкость параллельных запросов и текущее использование рабочих процессов