DBAtlas · Atlas für Datenbankbetrieb

Tabellen-Bloat schätzen

PostgreSQLSpeicher

Befehl

SELECT schemaname, relname AS table_name, n_dead_tup AS dead_rows, n_live_tup AS live_rows, round(n_dead_tup::numeric / NULLIF(n_live_tup + n_dead_tup, 0) * 100, 1) AS dead_pct, last_autovacuum FROM pg_stat_user_tables WHERE n_dead_tup > 0 ORDER BY n_dead_tup DESC LIMIT 20;

Was es tut

Zeigt den Bloat-Anteil anhand der Anzahl toter Tupel und der letzten Autovacuum-Zeit.

Wann einsetzen

Um den VACUUM-Bedarf zu ermitteln und zu sehen, ob Autovacuum hinterherkommt.

Vorsicht

n_dead_tup ist eine laufend aus DML-Zählern aktualisierte Schätzung (sinkt nach VACUUM; ANALYZE korrigiert nur die Schätzung); für exakten physischen Bloat ist die Extension pgstattuple (pgstattuple('customer')) genauer.

In DBAtlas öffnen →

Verwandte Einträge