You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 lines
1.2 KiB
23 lines
1.2 KiB
|
|
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 |
|
|
|
|