DBAtlas · Atlas de operaciones de bases de datos

Estimar el bloat de una tabla

PostgreSQLAlmacenamiento

Comando

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;

Qué hace

Muestra la proporción de bloat según el número de dead tuples y la hora del último autovacuum.

Cuándo usarlo

Para determinar la necesidad de VACUUM y si autovacuum va al día.

Precaución

n_dead_tup es una estimación que se actualiza continuamente a partir de los contadores de DML (baja tras VACUUM; ANALYZE solo corrige la estimación); para el bloat físico exacto la extensión pgstattuple (pgstattuple('customer')) es más precisa.

Abrir en DBAtlas →

Relacionado