May 2018
Intermediate to advanced
576 pages
30h 25m
English
The best way to understand things is to look at things the same way that autovacuum does, using a view created with the following query:
CREATE OR REPLACE VIEW av_needed AS SELECT N.nspname, C.relname , pg_stat_get_tuples_inserted(C.oid) AS n_tup_ins , pg_stat_get_tuples_updated(C.oid) AS n_tup_upd , pg_stat_get_tuples_deleted(C.oid) AS n_tup_del , CASE WHEN pg_stat_get_tuples_updated(C.oid) > 0 THEN pg_stat_get_tuples_hot_updated(C.oid)::real / pg_stat_get_tuples_updated(C.oid) END AS HOT_update_ratio , pg_stat_get_live_tuples(C.oid) AS n_live_tup , pg_stat_get_dead_tuples(C.oid) AS n_dead_tup , C.reltuples AS reltuples , round( current_setting('autovacuum_vacuum_threshold')::integer + current_setting('autovacuum_vacuum_scale_factor')::numeric ...