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_ суффикс.

Другие вопросы по тегам