On 16 Oct 2002, Hannu Krosing wrote:
> On Wed, 2002-10-16 at 05:22, Gavin Sherry wrote:
> > Hi all,
> >
> > I'm thinking that there is an improvement to vacuum which could be made
> > for 7.4. VACUUM FULLing large, heavily updated tables is a pain. There's
> > very little an application can do to minimise dead-tuples, particularly if
> > the table is randomly updated. Wouldn't it be beneficial if VACUUM could
> > have a parameter which specified how much of the table is vacuumed. That
> > is, you could specify:
> >
> > VACUUM FULL test 20 precent;
>
> What about
>
> VACUUM FULL test WORK 5 SLEEP 50;
>
> meaning to VACUUM FULL the whole table, but to work in small chunks and
> relaese all locks and let others access the tables between these ?
Great idea. I think this could work as a complement to the idea I had. To
answer Tom's question, how would we know what we've vacuumed, we could
store the range of tids we've vacuumed in pg_class. Or, we could store the
block offset of where we left off vacuuming before and using stats, run
for another X% of the heap. Is this possible?
Gavin