Postgres pg_toast в автоочистке - какая таблица?
У меня есть процесс автоочистки, работающий на pg_toast:
select query, from pg_stat_activity where query like '%autov%';
"autovacuum: VACUUM pg_toast.pg_toast_15404513 "
Как мне узнать, к какой таблице / индексу / чему бы ни относился этот pg_toast? Или автовакуум работает на что-то еще?
2 ответа
Решение
Я думаю, что вы хотите что-то вроде:
select n.nspname, c.relname
from pg_class c
inner join pg_namespace n on c.relnamespace = n.oid
where reltoastrelid = (
select oid
from pg_class
where relname = 'pg_toast_15404513'
and relnamespace = (SELECT n2.oid FROM pg_namespace n2 WHERE n2.nspname = 'pg_toast') )
Было бы хорошо, если бы Pg сообщил об этом в кратком изложении команд вакуума.
Вот более короткий путь:
select 15404513::regclass;
где 15404513
является pg_toast_
суффикс.