1 changed files with 23 additions and 0 deletions
@ -0,0 +1,23 @@
@@ -0,0 +1,23 @@
|
||||
|
||||
SELECT |
||||
local.schemaname||'.'||local.relname, |
||||
local.indexrelname, |
||||
local.idx_scan as local_used, |
||||
replica.idx_scan as remote_used, |
||||
(coalesce(n_tup_ins,0)+coalesce(n_tup_upd,0)-coalesce(n_tup_hot_upd,0)+coalesce(n_tup_del,0)) as write_activity, |
||||
pg_stat_user_tables.seq_scan, |
||||
pg_stat_user_tables.n_live_tup, |
||||
pg_size_pretty(pg_relation_size(indexrelid::regclass)) as size |
||||
from pg_stat_user_indexes as local |
||||
join replica_fdw.pg_stat_user_indexes as replica USING (relid, indexrelid) |
||||
join pg_stat_user_tables USING (relid) |
||||
join pg_index USING (indexrelid) |
||||
where |
||||
pg_index.indisunique is false |
||||
and |
||||
--heuristic between table size, index usage and write actibity) |
||||
(local.idx_scan+replica.idx_scan)::float*pg_relation_size(relid::regclass)<=10*(coalesce(n_tup_ins,0)+coalesce(n_tup_upd,0)-coalesce(n_tup_hot_upd,0)+coalesce(n_tup_del,0))::float |
||||
--skip small unused indexes on zero write tables |
||||
and not ((coalesce(n_tup_ins,0)+coalesce(n_tup_upd,0)-coalesce(n_tup_hot_upd,0)+coalesce(n_tup_del,0))<100000 and pg_relation_size(indexrelid::regclass)<100*1024*1024) |
||||
order by write_activity desc,pg_relation_size(relid::regclass) desc, local.indexrelname |
||||
|
||||
Loading…
Reference in new issue