Skip site navigation (1) Skip section navigation (2)

Re: Vacuum x Vacuum full

From: Stephan Szabo <sszabo(at)megazone(dot)bigpanda(dot)com>
To: Carlos Benkendorf <chbenkendorf(at)yahoo(dot)com>
Cc: pgsql-admin(at)postgresql(dot)org
Subject: Re: Vacuum x Vacuum full
Date: 2004-06-25 17:28:40
Message-ID: 20040625101942.J32249@megazone.bigpanda.com (view raw or flat)
Thread:
Lists: pgsql-admin
On Fri, 25 Jun 2004, Carlos Benkendorf wrote:

> I would like to know if space disk is free to the Operational System
> during a standard vacuum (without the full option)?
>
> I found in section "21.1.1 Recovering disk space" of Postgresql 7.4.2 manual
> something about it.
>
> "The standard form of VACUUM is best used with the goal of maintaining a
> fairly level steady-state usage of disk space.The standard form finds
> old row versions and makes their space available for re-use within the
> table, but it does not try very hard to shorten the table file and
> return disk space to the operating system. "
>
> Even so it is not clear. They say the space will be available for re-use
> within the table so I realized the space will not be available to
> the operational system. But they also say the command "does not try very
> hard to shorten the table file and return disk space to the operating
> system" what means to me that it could sometimes free space to the
> operating system.
>
> I could not clear my doubt. Will the standard form, free disk space to the
> operational system or not?

Sometimes. If there are empty pages at the end of the file, it can attempt
to shorten the file. If there's data at the end of the file, it won't.

> I did some tests and discovered that the standard form frees disk space
> to the operational system. But if the standard form already frees it why
> the full form will do different?

Full can move tuples between pages which can free up pages at the end of
the file which can allow it to shorten further.

For example, if you insert enough rows to say have 2 pages in your table
file and delete all the entries on the first page and not quite all on the
second, vacuum (nonfull) is not going to be able to truncate the file
because the data is in the second page.  Vacuum full will move live rows
to the first page freeing up the entire second page and making it
available for release.

In response to

pgsql-admin by date

Next:From: Tom LaneDate: 2004-06-25 17:35:26
Subject: Re: Vacuum x Vacuum full
Previous:From: Carlos BenkendorfDate: 2004-06-25 16:42:31
Subject: Vacuum x Vacuum full

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group