Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-admin by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group