Re: Allowing multi "-t" and adding "-n" to vacuumdb ? - Mailing list pgsql-hackers

From Jehan-Guillaume (ioguix) de Rorthais
Subject Re: Allowing multi "-t" and adding "-n" to vacuumdb ?
Date
Msg-id 4F50925B.3000405@dalibo.com
Whole thread Raw
In response to Re: Allowing multi "-t" and adding "-n" to vacuumdb ?  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers
On 01/03/2012 23:13, Tom Lane wrote:
> "Jehan-Guillaume (ioguix) de Rorthais" <jgdr@dalibo.com> writes:
>> One of our customer send us a patch he wrote for his needs (on
>> "src/bin/scripts/vacuumdb.c", no doc were included).
> 
>> He's using one schema per application and would like to be able to run
>> vacuumdb on each of them independently so he added the "--schema|-n"
>> option and send us the patch.
> 
>> Reviewing his patch, I thought it would be more useful to allow multi
>> "--table|-t" options on the command line first. It might be possible to
>> pass an array of tables to "vacuum_one_database" function instead of
>> just one.
> 
>> Then, we could add the "--schema|-n" option which would fetch and build
>> the table list and call "vacuum_one_database".
> 
>> But before I start writing this patch, I would like some opinion, pros /
>> cons. Do you think such a feature could be accepted in official
>> PostgreSQL code or should we keep this as an external script ?
> 
> I think most of us see vacuumdb as a historical leftover.  We keep it
> around in case anyone is still relying on it, but improving it seems
> like misdirected effort.
> 
> Why isn't your customer using autovacuum?  If there are concrete
> reasons why that doesn't get the job done for him, it would be more
> useful in the long run to work on fixing that.

I usually advice to use both of them: vacuumdb and autovacuum (with
tuning if needed).

Autovacuum is launching its workers whenever tables need some
maintenance. It is usually pretty discrete in most case, but not all of
them (cf. Kevin Grittner email) and you cannot control when these
workers are launched.

As a DBA you know when you can afford some maintenances during the
day/week/month WRT your db activity and plan them accordingly. Hence,
running vacuumdb from crontab will just do autovacuum's job in some
situation avoiding a random worker during the day.

>             regards, tom lane

-- 
Jehan-Guillaume (ioguix) de Rorthais
http://www.dalibo.com


pgsql-hackers by date:

Previous
From: Simon Riggs
Date:
Subject: Re: COPY with hints, rebirth
Next
From: Gregg Jaskiewicz
Date:
Subject: autovacuum locks