@@ -15,14 +15,26 @@ WITH table_opts AS (
1515 WHEN relopts LIKE ' %autovacuum_vacuum_scale_factor%'
1616 THEN substring (relopts, ' .*autovacuum_vacuum_scale_factor=([0-9.]+).*' )::real
1717 ELSE current_setting(' autovacuum_vacuum_scale_factor' )::real
18- END AS autovacuum_vacuum_scale_factor
18+ END AS autovacuum_vacuum_scale_factor,
19+ CASE
20+ WHEN relopts LIKE ' %autovacuum_analyze_threshold%'
21+ THEN substring (relopts, ' .*autovacuum_analyze_threshold=([0-9.]+).*' )::integer
22+ ELSE current_setting(' autovacuum_analyze_threshold' )::integer
23+ END AS autovacuum_analyze_threshold,
24+ CASE
25+ WHEN relopts LIKE ' %autovacuum_analyze_scale_factor%'
26+ THEN substring (relopts, ' .*autovacuum_analyze_scale_factor=([0-9.]+).*' )::real
27+ ELSE current_setting(' autovacuum_analyze_scale_factor' )::real
28+ END AS autovacuum_analyze_scale_factor
1929 FROM
2030 table_opts
2131)
2232SELECT
2333 FORMAT(' %I.%I' , vacuum_settings .nspname , vacuum_settings .relname ) AS name,
2434 coalesce(to_char(psut .last_vacuum , ' YYYY-MM-DD HH24:MI' ), ' ' ) AS last_vacuum,
2535 coalesce(to_char(psut .last_autovacuum , ' YYYY-MM-DD HH24:MI' ), ' ' ) AS last_autovacuum,
36+ coalesce(to_char(psut .last_analyze , ' YYYY-MM-DD HH24:MI' ), ' ' ) AS last_analyze,
37+ coalesce(to_char(psut .last_autoanalyze , ' YYYY-MM-DD HH24:MI' ), ' ' ) AS last_autoanalyze,
2638 to_char(pg_class .reltuples , ' 9G999G999G999' ) AS rowcount,
2739 to_char(psut .n_dead_tup , ' 9G999G999G999' ) AS dead_rowcount,
2840 to_char(autovacuum_vacuum_threshold
@@ -31,7 +43,14 @@ SELECT
3143 WHEN autovacuum_vacuum_threshold + (autovacuum_vacuum_scale_factor::numeric * pg_class .reltuples ) < psut .n_dead_tup
3244 THEN ' yes'
3345 ELSE ' no'
34- END AS expect_autovacuum
46+ END AS expect_autovacuum,
47+ to_char(autovacuum_analyze_threshold
48+ + (autovacuum_analyze_scale_factor::numeric * pg_class .reltuples ), ' 9G999G999G999' ) AS autoanalyze_threshold,
49+ CASE
50+ WHEN autovacuum_analyze_threshold + (autovacuum_analyze_scale_factor::numeric * pg_class .reltuples ) < psut .n_dead_tup
51+ THEN ' yes'
52+ ELSE ' no'
53+ END AS expect_autoanalyze
3554FROM
3655 pg_stat_user_tables psut INNER JOIN pg_class ON psut .relid = pg_class .oid
3756INNER JOIN vacuum_settings ON pg_class .oid = vacuum_settings .oid
0 commit comments