Statistiken von pg_stat_statements zurücksetzen (alle oder eine einzelne Abfrage)
PostgreSQLPerformanceBefehl
-- 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();Was es tut
Setzt die Zähler von pg_stat_statements vollständig oder je Benutzer/Datenbank/queryid zurück; pg_stat_statements_info zeigt die Zeit des letzten Resets und wie viele Einträge wegen Platzmangels verdrängt wurden.
Wann einsetzen
Um vor einer Tuning-Änderung (Index, Parameter, Deploy) eine saubere Messung zu beginnen oder den neuen Plan einer einzelnen Abfrage isoliert zu messen.
Vorsicht
Ein Reset lässt sich nicht rückgängig machen; Monitoring-/APM-Tools, die auf kumulierte Zähler setzen, zeigen eine Lücke, daher vorher einen Snapshot ziehen (siehe Rezept zu Planregressionen). Wächst dealloc ständig, ist pg_stat_statements.max zu klein (Änderung erfordert einen Neustart). Standardmäßig dürfen es nur Superuser ausführen; mit GRANT EXECUTE ON FUNCTION freigeben.
Verwandte Einträge
- Teuerste Abfragen finden (pg_stat_statements: Gesamt- und mittlere Zeit)
- Abfragen finden, die Platten-I/O, Temp-Dateien und WAL verursachen (pg_stat_statements)
- Ausführungspläne langsamer Abfragen mit auto_explain protokollieren
- Plan im Detail lesen mit EXPLAIN (ANALYZE, BUFFERS, SETTINGS, WAL)
- Planregressionen per queryid erkennen (Snapshot-Vergleich von pg_stat_statements)
- Kapazität für Parallel Query und aktuelle Worker-Nutzung prüfen