Re: vacuum full 100 mins plus? - Mailing list pgsql-performance

From Tom Lane
Subject Re: vacuum full 100 mins plus?
Date
Msg-id 16532.1089866203@sss.pgh.pa.us
Whole thread Raw
In response to Re: vacuum full 100 mins plus?  (Christopher Browne <cbbrowne@acm.org>)
List pgsql-performance
Christopher Browne <cbbrowne@acm.org> writes:
> A long time ago, in a galaxy far, far away, PHatcher@macys.com (Patrick Hatcher) wrote:
>> Answered my own question.  I gave up the vacuum full after 150 mins.  I was
>> able to export to a file, vacuum full the empty table, and reimport in less
>> than 10 mins.  I suspect the empty item pointers and the sheer number of
>> removable rows was causing an issue.

> In that case, you'd be a little further better off if the steps were:
>  - drop indices;
>  - copy table to file (perhaps via pg_dump -t my_table);
>  - truncate the table, or drop-and-recreate, both of which make
>    it unnecessary to do _any_ vacuum of the result;
>  - recreate indices, probably with SORT_MEM set high, to minimize
>    paging to disk
>  - analyze the table (no need to vacuum if you haven't created any
>    dead tuples)
>  - cut SORT_MEM back down to "normal" sizes

Rather than doing all this manually, you can just CLUSTER on any handy
index.  In 7.5, another possibility is to issue one of the forms of
ALTER TABLE that force a table rewrite.

The range of usefulness of VACUUM FULL is really looking narrower and
narrower to me.  I can foresee a day when we'll abandon it completely.

            regards, tom lane

pgsql-performance by date:

Previous
From: Christopher Browne
Date:
Subject: Re: vacuum full 100 mins plus?
Next
From: Tom Lane
Date:
Subject: Re: Odd sorting behaviour