2013-08-27 24 views
15

Mam proces autovacuum działa na pg_toast:Postgres pg_toast in autovacuum - który stół?

select query, from pg_stat_activity where query like '%autov%'; 
"autovacuum: VACUUM pg_toast.pg_toast_15404513 " 

Jak mogę dowiedzieć się, co tabeli/index/cokolwiek to pg_toast dotyczy? A może autowarstwo działa na coś innego?

Odpowiedz

11

myślę, że chcesz coś takiego:

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')) 

Byłoby miło, gdyby Pg zgłosiłem to w podsumowaniu poleceń próżnia.

+1

Czy istnieje sposób na podanie prawdziwego imienia wszystkich pg_toast_xxx? dzięki. – wolf97084

+2

@ wolf97084, tutaj jest zapytanie o listę wszystkich pg_toast_xxx i ich prawdziwej nazwy 'select r.relname, t.relname z pg_class r wewnętrznego łączenia pg_class t na t.reltoastrelid = r.oid;' – SergA

+0

@SergA działa jak urok. Wielkie dzięki! – wolf97084

25

Oto krótsza droga:

select 15404513::regclass; 

gdzie 15404513 jest pg_toast_ przyrostek.