On Tue, Aug 18, 2009 at 11:44 AM, Anj Adu<fotographs@gmail.com> wrote:
> We have a partitioned table structure where the partitions are created
> on a daily basis. One of the inserts into the daily partition failed
> (crashed) ..the partition was empty after the crash. We did a vacuum
> of the partition and it takes very long (over 30 minutes).
>
> Postgres 8.1.2 ... vacuum_cost_delay = 0.
You need an update. You're missing years and years of bug fixes with
that version.
> What is vacuum doing that takes so long on an empty table?
Deleting tuples that aren't there. You're probably better off using truncate:
begin;
trunctate only partition_table;
commit;
It's much faster. The begin / commit pair are just in case you do it
to the wrong table you can get your data back replacing commit with
rollback.