Обсуждение: Vacuum x Vacuum full

Поиск
Список
Период
Сортировка

Vacuum x Vacuum full

От
Carlos Benkendorf
Дата:
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?
 
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?
Thanks in advance!


Do you Yahoo!?
Take Yahoo! Mail with you! Get it on your mobile phone.

Re: Vacuum x Vacuum full

От
Stephan Szabo
Дата:
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.

Re: Vacuum x Vacuum full

От
Tom Lane
Дата:
Carlos Benkendorf <chbenkendorf@yahoo.com> writes:
> I could not clear my doubt. Will the standard form, free disk space to the
> operational system or not?

It will release space to the OS if (a) there are one or more completely
empty pages at the end of the table and (b) it is able to get an
exclusive lock on the table (ie, there's not anyone else using the table
at the time).

            regards, tom lane