determining which table is being vacuumed by autovacuum

From: Kevin Kempter <kevin(at)kevinkempterllc(dot)com>
To: pgsql-admin(at)postgresql(dot)org
Subject: determining which table is being vacuumed by autovacuum
Date: 2007-08-22 21:25:45
Message-ID: 200708221525.45292.kevin@kevinkempterllc.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

Hi List;

I want to determine which table is being vacuumed.

I ran this:

postgres=# select procpid, current_query from pg_stat_activity where
current_query = 'VACUUM';
procpid | current_query
---------+---------------
9902 | VACUUM
(1 row)

Then I ran this:

postgres=# select relation from pg_locks where pid = 9902;
relation
-----------
82097999
143763216
143763215
143763193
143763193
143763217
(7 rows)

However none of these seem to have a corresponding pg_class oid, see the below
queries:

postgres=# select relation::regclass from pg_locks where pid = 9902;
relation
-----------
82097999
143763216
143763215
143763193
143763193
143763217
(7 rows)

postgres=# select relname from pg_class where oid in (select relation from
pg_locks where pid = 9902);
relname
---------
(0 rows)

2 questions:

1) Is this normal, as in are there normally relation values in pg_locks that
are not meant to correspond to a pg_class oid (i.e. a table name)

2) Is this the best way to determine which table is currently being vacuumed?

Thanks in advance...

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Scott Marlowe 2007-08-22 22:04:48 Re: "Stand-in" server recovery techniques
Previous Message Karel Břinda 2007-08-22 20:59:37 Possibilities of PgSQL