Unix/Linux Go Back    

RedHat 9 (Linux i386) - man page for vacuum (redhat section 7)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)

VACUUM(7)				   SQL Commands 				VACUUM(7)

       VACUUM - garbage-collect and optionally analyze a database

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

       FULL   Selects  ``full''  vacuum,  which may reclaim more space, but takes much longer and
	      exclusively locks the table.

       FREEZE Selects aggressive ``freezing'' of tuples.

	      Prints a detailed vacuum activity report for each table.

	      Updates statistics used by the optimizer to determine the  most  efficient  way  to
	      execute a query.

       table  The  name  (optionally schema-qualified) of a specific table to vacuum. Defaults to
	      all tables in the current database.

       column The name of a specific column to analyze. Defaults to all columns.

       VACUUM The command is complete.

       INFO: --Relation table--
	      The report header for table.

       INFO: Pages 98: Changed 25, Reapped 74, Empty 0, New 0;
	      The analysis for table itself.

       INFO: Index index: Pages 28;
	      The analysis for an index on the target table.

       VACUUM reclaims storage occupied by  deleted  tuples.   In  normal  PostgreSQL  operation,
       tuples  that  are deleted or obsoleted by UPDATE are not physically removed from their ta-
       ble; they remain present until a VACUUM is done. Therefore it's	necessary  to  do  VACUUM
       periodically, especially on frequently-updated tables.

       With no parameter, VACUUM processes every table in the current database. With a parameter,
       VACUUM processes only that table.

       VACUUM ANALYZE performs a VACUUM and then an ANALYZE for each selected table.  This  is	a
       handy  combination form for routine maintenance scripts. See ANALYZE [analyze(7)] for more
       details about its processing.

       Plain VACUUM (without FULL) simply reclaims space and makes it available for re-use.  This
       form  of the command can operate in parallel with normal reading and writing of the table,
       as an exclusive lock is not obtained. VACUUM FULL does more extensive processing,  includ-
       ing  moving  of	tuples across blocks to try to compact the table to the minimum number of
       disk blocks. This form is much slower and requires an exclusive lock on each  table  while
       it is being processed.

       FREEZE  is  a special-purpose option that causes tuples to be marked ``frozen'' as soon as
       possible, rather than waiting until they are quite old. If this is done when there are  no
       other open transactions in the same database, then it is guaranteed that all tuples in the
       database are ``frozen'' and will not be subject to transaction ID wraparound problems,  no
       matter  how  long the database is left un-vacuumed.  FREEZE is not recommended for routine
       use. Its only intended usage is in connection with preparation  of  user-defined  template
       databases,  or  other databases that are completely read-only and will not receive routine
       maintenance VACUUM operations.  See the Administrator's Guide for details.

       We recommend that active production databases be VACUUM-ed frequently (at least	nightly),
       in  order  to  remove expired rows. After adding or deleting a large number of records, it
       may be a good idea to issue a VACUUM ANALYZE command for the  affected  table.  This  will
       update  the  system  catalogs  with the results of all recent changes, and allow the Post-
       greSQL query optimizer to make better choices in planning user queries.

       The FULL option is not recommended for routine use, but may be useful in special cases. An
       example	is  when you have deleted most of the rows in a table and would like the table to
       physically shrink to occupy less disk space. VACUUM FULL will  usually  shrink  the  table
       more than a plain VACUUM would.

       The following is an example from running VACUUM on a table in the regression database:

       regression=> VACUUM VERBOSE ANALYZE onek;
       INFO:  --Relation onek--
       INFO:  Index onek_unique1: Pages 14; Tuples 1000: Deleted 3000.
	       CPU 0.00s/0.11u sec elapsed 0.12 sec.
       INFO:  Index onek_unique2: Pages 16; Tuples 1000: Deleted 3000.
	       CPU 0.00s/0.10u sec elapsed 0.10 sec.
       INFO:  Index onek_hundred: Pages 13; Tuples 1000: Deleted 3000.
	       CPU 0.00s/0.10u sec elapsed 0.10 sec.
       INFO:  Index onek_stringu1: Pages 31; Tuples 1000: Deleted 3000.
	       CPU 0.01s/0.09u sec elapsed 0.10 sec.
       INFO:  Removed 3000 tuples in 70 pages.
	       CPU 0.02s/0.04u sec elapsed 0.07 sec.
       INFO:  Pages 94: Changed 0, Empty 0; Tup 1000: Vac 3000, Keep 0, UnUsed 0.
	       Total CPU 0.05s/0.45u sec elapsed 0.59 sec.
       INFO:  Analyzing onek

       There is no VACUUM statement in SQL92.

SQL - Language Statements		    2002-11-22					VACUUM(7)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums

All times are GMT -4. The time now is 10:05 AM.