Re: dead tuples and VACUUM - Mailing list pgsql-general

From Dmitry Tkach
Subject Re: dead tuples and VACUUM
Date
Msg-id 3EDB65CE.7010308@openratings.com
Whole thread Raw
In response to Re: dead tuples and VACUUM  (Andrew Sullivan <andrew@libertyrms.info>)
Responses Re: dead tuples and VACUUM  (Bruno Wolff III <bruno@wolff.to>)
List pgsql-general
Thanks for the reply!

I'd still like to clariofy some points...

>If you replace every tuple in the table, you probably don't have a
>large enough fress space map to track all of that.  So VACUUM FULL is
>a good idea.
>
>
Where do I set that free space map? Is it a configuration parameter?
And what exactly does it mean? If it is not high enough and I never run
VACUUM FULL, are my dead tuples lost forever?

>But another answer is to VACUUM every (say) couple thousand UPDATEs.
>That'll keep the table size managable.
>
I am afraid, that is not feasible too - you see, that monthly update job
I mentioned runs continuosly and takes about a couple of weeks to
complete as it is.
If I pause it every couple thousands of rows to do a vacuum, it will, I
am afraid, take months (and I have to stay under at least 1 month,
because the whole idea is to update every month).

> You could even run a parallel
>VACUUM.  If the whole table is UPDATEd in one transaction, though,
>that won't help.
>
It is not one transaction. I am running about 10 parallel jobs, and each
of them commits every now and then (every 10K rows, I believe).
If I run VACUUM in parallel, what exactly is going to happen?

Will I still be loosing some of those dead tuples after each update?

Basically, my question is - if I let it run this way forever, will the
database just keep growing on me until I am out of the disk space?
Is there any way to prevent that, without having to take it offline for
days?

Thanks!

Dima



pgsql-general by date:

Previous
From: "culley harrelson"
Date:
Subject: installing contrib/tsearch with a FreeBSD Port
Next
From: Bruno Wolff III
Date:
Subject: Re: check constraint