Re: Avoiding vacuum full on an UPDATE-heavy table - Mailing list pgsql-performance

From Bill Montgomery
Subject Re: Avoiding vacuum full on an UPDATE-heavy table
Date
Msg-id 40AE74BD.5050802@lulu.com
Whole thread Raw
In response to Re: Avoiding vacuum full on an UPDATE-heavy table  ("Matthew T. O'Connor" <matthew@zeut.net>)
Responses Re: Avoiding vacuum full on an UPDATE-heavy table
List pgsql-performance
Matthew T. O'Connor wrote:

>>Is there any way to avoid doing a periodic VACUUM FULL on this table,
>>given the fairly radical usage pattern? Or is the (ugly) answer to
>>redesign our application to avoid this usage pattern?
>>
>>
>pg_autovacuum would probably help as it monitors activity and vacuumus
>tables accordingly.  It is not included with 7.3.x but if you download it
>and compile yourself it will work against a 7.3.x server.
>
>
As a quick fix, since we're upgrading to 7.4.2 in a few weeks anyhow
(which includes pg_autovacuum), I've simply set up an hourly vacuum on
this table. It only takes ~4 seconds to execute when kept up on an
hourly basis. Is there any penalty to vacuuming too frequently, other
than the time wasted in an unnecessary vacuum operation?

My hourly VACUUM VERBOSE output now looks like this:

INFO:  --Relation public.xxxx--
INFO:  Index xxxx_yyyy_idx: Pages 30452; Tuples 34990: Deleted 1226.
        CPU 0.67s/0.18u sec elapsed 0.87 sec.
INFO:  Index xxxx_yyyy_idx: Pages 19054; Tuples 34991: Deleted 1226.
        CPU 0.51s/0.13u sec elapsed 1.35 sec.
INFO:  Removed 1226 tuples in 137 pages.
        CPU 0.01s/0.00u sec elapsed 1.30 sec.
INFO:  Pages 13709: Changed 31, Empty 0; Tup 34990: Vac 1226, Keep 0,
UnUsed 567233.
        Total CPU 1.58s/0.31u sec elapsed 3.91 sec.
INFO:  Analyzing public.xxxx
VACUUM

With regards to Vivek's post about index bloat, I tried REINDEXing
before I did a VACUUM FULL a month ago when performance had gotten
dismal. It didn't help :-(

Best Regards,

Bill Montgomery

pgsql-performance by date:

Previous
From: Vivek Khera
Date:
Subject: Re: Avoiding vacuum full on an UPDATE-heavy table
Next
From: Tom Lane
Date:
Subject: Re: Avoiding vacuum full on an UPDATE-heavy table