Cleans and analyzes a database.


VACUUM [ VERBOSE ] [ ANALYZE ] [ table ]
VACUUM [ VERBOSE ] ANALYZE [ table [ (column [, ...] ) ] ]



The keyword that causes VACUUM to display an activity report for each table it operates upon.


The keyword that causes VACUUM to update column statistics for the optimizer.


A table you intend to vacuum. If you do not specify a table, VACUUM will operate upon all tables.


The name of a column to analyze (used when updating statistics for the optimizer).



The message returned when a VACUUM successfully vacuums a database or table.

NOTICE: —Relation table—

The notice returned when VACUUM begins cleaning a table (table) while in verbose mode.

NOTICE: Pages 1: Changed 1, reaped 1, Empty 0, New 0; Tup 12: Vac 39, Keep/VTL 0/0, Crash 0, UnUsed 0, MinLen 52, MaxLen 76; Re-using: Free/Avail. Space 7180/0; EndEmpty/Avail. Pages 0/0. CPU 0.00s/0.00u sec.

The notice returned from the analysis on a table.

NOTICE: Index indexname: Pages 2; Tuples 12: Deleted 39. CPU 0.00s/0.00u sec.

The notice returned from an analysis of indexname.


Use the VACUUM command to clean up records from rolled back transactions and to update system catalog statistics. Call it with the ANALYZE option to collect statistical information about data. Using this command periodically can increase the performance of your database.


The following example displays the output of the VACUUM command when run on the books table with the ...

Get Practical PostgreSQL now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.