Автоматическое удаление индексов в Postgresql
Можно ли находить и автоматически чистить индексы в бд?
По типу процедура которая видит что reltuples,idx_tup_read,idx_scan пустые, дальше берет имя индекса и как-то удаляет его...
Ответы (1 шт):
Автор решения: Vadim
→ Ссылка
do $$
declare
rec record;
begin
for rec in
select relnamespace::regnamespace as namespace, relname
from pg_index i
join pg_class c on c.oid = i.indexrelid
where not indisvalid
loop
execute format('drop index %s.%s', rec.namespace, rec.relname);
-- optionally:
-- raise notice '%', format('drop index %s.%s', rec.namespace, rec.relname);
end loop;
end $$;