DBAtlas · Atlas d'exploitation des bases de données

Estimer le bloat d'une table

PostgreSQLStockage

Commande

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;

Ce que fait la commande

Affiche le taux de bloat à partir du nombre de dead tuples et de l'heure du dernier autovacuum.

Quand l'utiliser

Pour déterminer les besoins de VACUUM et si autovacuum suit le rythme.

Attention

n_dead_tup est une estimation mise à jour en continu à partir des compteurs DML (elle baisse après VACUUM ; ANALYZE ne fait que corriger l'estimation) ; pour le bloat physique exact, l'extension pgstattuple (pgstattuple('customer')) est plus précise.

Ouvrir dans DBAtlas →

Voir aussi