|
1 | | --- Show last autovacuum by table size descending. |
2 | | -select |
3 | | - pg_class.relname, |
4 | | - pg_namespace.nspname, |
5 | | - pg_size_pretty(pg_total_relation_size(pg_namespace.nspname::text || '.' || pg_class.relname::text)), |
6 | | - pg_stat_all_tables.last_autovacuum, |
7 | | - pg_stat_all_tables.last_autoanalyze, |
8 | | - pg_relation_size(pg_namespace.nspname::text || '.' || pg_class.relname::text) |
9 | | -from |
10 | | - pg_class |
11 | | - join pg_namespace |
12 | | - on pg_class.relnamespace = pg_namespace.oid |
13 | | - join pg_stat_all_tables |
14 | | - on (pg_class.relname = pg_stat_all_tables.relname AND pg_namespace.nspname = pg_stat_all_tables.schemaname) |
15 | | -where |
16 | | - pg_namespace.nspname not in ('pg_toast') |
17 | | -order by |
18 | | - 5 desc |
19 | | -; |
| 1 | +-- Show last autovacuum and autoanalyze by table size descending. |
| 2 | +SELECT pg_class.relname |
| 3 | + , pg_namespace.nspname |
| 4 | + , pg_size_pretty(pg_total_relation_size(pg_class.oid)) |
| 5 | + , |
| 6 | + CASE |
| 7 | + WHEN COALESCE(last_vacuum,'1/1/1000') > |
| 8 | + COALESCE(last_autovacuum,'1/1/1000') THEN |
| 9 | + pg_stat_all_tables.last_vacuum |
| 10 | + ELSE last_autovacuum |
| 11 | + END AS last_vacuumed |
| 12 | + , |
| 13 | + CASE |
| 14 | + WHEN COALESCE(last_analyze,'1/1/1000') > |
| 15 | + COALESCE(last_autoanalyze,'1/1/1000') THEN |
| 16 | + pg_stat_all_tables.last_analyze |
| 17 | + ELSE last_autoanalyze |
| 18 | + END AS last_analyzed |
| 19 | + , pg_relation_size(pg_class.oid) |
| 20 | + FROM pg_class |
| 21 | + JOIN pg_namespace |
| 22 | + ON pg_class.relnamespace = pg_namespace.oid |
| 23 | + JOIN pg_stat_all_tables |
| 24 | + ON ( |
| 25 | + pg_class.relname = pg_stat_all_tables.relname |
| 26 | + AND pg_namespace.nspname = pg_stat_all_tables.schemaname |
| 27 | + ) |
| 28 | + WHERE pg_namespace.nspname NOT IN ('pg_toast') |
| 29 | + ORDER BY pg_relation_size(pg_class.oid) DESC ; |
0 commit comments