summaryrefslogtreecommitdiff
path: root/doc/src/sgml/ref/vacuum.sgml
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src/sgml/ref/vacuum.sgml')
-rw-r--r--doc/src/sgml/ref/vacuum.sgml453
1 files changed, 232 insertions, 221 deletions
diff --git a/doc/src/sgml/ref/vacuum.sgml b/doc/src/sgml/ref/vacuum.sgml
index 98758c773ee..2e9a3fe6531 100644
--- a/doc/src/sgml/ref/vacuum.sgml
+++ b/doc/src/sgml/ref/vacuum.sgml
@@ -1,212 +1,206 @@
-<REFENTRY ID="SQL-VACUUM-1">
-<REFMETA>
-<REFENTRYTITLE id="vacuum">
-VACUUM
-</REFENTRYTITLE>
-<REFMISCINFO>SQL - Language Statements</REFMISCINFO>
-</REFMETA>
-<REFNAMEDIV>
-<REFNAME>
-VACUUM
-</REFNAME>
-<REFPURPOSE>
-Clean and analyze a <productname>Postgres</productname> database
-</REFPURPOSE>
- </refnamediv>
-<REFSYNOPSISDIV>
-<REFSYNOPSISDIVINFO>
-<DATE>1998-10-04</DATE>
-</REFSYNOPSISDIVINFO>
-<SYNOPSIS>
-VACUUM [ VERBOSE ] [ ANALYZE ] [ <REPLACEABLE CLASS="PARAMETER">table</REPLACEABLE> ]
-VACUUM [ VERBOSE ] ANALYZE [ <REPLACEABLE CLASS="PARAMETER">table</REPLACEABLE> [ (<REPLACEABLE CLASS="PARAMETER">column</REPLACEABLE> [, ...] ) ] ]
-</SYNOPSIS>
+<refentry id="SQL-VACUUM-1">
+ <refmeta>
+ <refentrytitle id="vacuum">
+ VACUUM
+ </refentrytitle>
+ <refmiscinfo>SQL - Language Statements</refmiscinfo>
+ </refmeta>
+ <refnamediv>
+ <refname>
+ VACUUM
+ </refname>
+ <refpurpose>
+ Clean and analyze a <productname>Postgres</productname> database
+ </refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <refsynopsisdivinfo>
+ <date>1998-10-04</date>
+ </refsynopsisdivinfo>
+ <synopsis>
+VACUUM [ VERBOSE ] [ ANALYZE ] [ <replaceable class="PARAMETER">table</replaceable> ]
+VACUUM [ VERBOSE ] ANALYZE [ <replaceable class="PARAMETER">ER">t</replaceable>BLE> [ (<replaceable class="PARAMETER">column</replaceable> [, ...] ) ] ]
+ </synopsis>
+
+ <refsect2 id="R2-SQL-VACUUM-1">
+ <refsect2info>
+ <date>1998-10-04</date>
+ </refsect2info>
+ <title>
+ Inputs
+ </title>
+
+ <para>
+ <variablelist>
+ <varlistentry>
+ <term>VERBOSE</term>
+ <listitem>
+ <para>
+ Prints a detailed vacuum activity report for each table.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term>ANALYZE</term>
+ <listitem>
+ <para>
+ Updates column statistics used by the optimizer to
+ determine the most efficient way to execute a query.
+ The statistics represent the disbursion of the data in each column.
+ This information is valuable when several execution paths are possible.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><replaceable class="PARAMETER">table</replaceable></term>
+ <listitem>
+ <para>
+ The name of a specific table to vacuum. Defaults to all tables.
+ </para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><replaceable class="PARAMETER">column</replaceable></term>
+ <listitem>
+ <para>
+ The name of a specific column to analyze. Defaults to all columns.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ </refsect2>
+
+ <refsect2 id="R2-SQL-VACUUM-2">
+ <refsect2info>
+ <date>1998-10-04</date>
+ </refsect2info>
+ <title>
+ Outputs
+ </title>
+ <para>
+
+ <variablelist>
+ <varlistentry>
+ <term><computeroutput>
+<returnvalue>VACUUM</returnvalue>
+ </computeroutput></term>
+ <listitem>
+ <para>
+ The command has been accepted and the database is being cleaned.
+ </para>
+ </listitem>
+ </varlistentry>
- <REFSECT2 ID="R2-SQL-VACUUM-1">
- <REFSECT2INFO>
- <DATE>1998-10-04</DATE>
- </REFSECT2INFO>
- <TITLE>
- Inputs
- </TITLE>
- <PARA>
-
- <VARIABLELIST>
- <VARLISTENTRY>
- <TERM>
- VERBOSE
- </term>
- <LISTITEM>
- <PARA>
- Prints a detailed vacuum activity report for each table.
- </para>
- </listitem>
- </varlistentry>
- <VARLISTENTRY>
- <TERM>
- ANALYZE
- </term>
- <LISTITEM>
- <PARA>
- Updates column statistics used by the optimizer to
- determine the most efficient way to execute a query.
- The statistics represent the disbursion of the data in each column.
- This information is valuable when several execution paths are possible.
- </para>
- </listitem>
- </varlistentry>
- <VARLISTENTRY>
- <TERM>
- <REPLACEABLE CLASS="PARAMETER">table</REPLACEABLE>
- </term>
- <LISTITEM>
- <PARA>
- The name of a specific table to vacuum. Defaults to all tables.
- </para>
- </listitem>
- </varlistentry>
- <VARLISTENTRY>
- <TERM>
- <REPLACEABLE CLASS="PARAMETER">column</REPLACEABLE>
- </term>
- <LISTITEM>
- <PARA>
- The name of a specific column to analyze. Defaults to all columns.
- </para>
- </listitem>
- </varlistentry>
- </VARIABLELIST>
- </para>
- </REFSECT2>
+ <varlistentry>
+ <term><computeroutput>
+NOTICE: --Relation <replaceable class="PARAMETER">table</replaceable>--
+ </computeroutput></term>
+ <listitem>
+ <para>
+ The report header for <replaceable class="PARAMETER">table</replaceable>.
+ </para>
+ </listitem>
+ </varlistentry>
- <REFSECT2 ID="R2-SQL-VACUUM-2">
- <REFSECT2INFO>
- <DATE>1998-10-04</DATE>
- </REFSECT2INFO>
- <TITLE>
- Outputs
- </TITLE>
- <PARA>
+ <varlistentry>
+ <term><computeroutput>
+NOTICE: Pages 98: Changed 25, Reapped 74, Empty 0, New 0;
+ Tup 1000: Vac 3000, Crash 0, UnUsed 0, MinLen 188, MaxLen 188;
+ Re-using: Free/Avail. Space 586952/586952; EndEmpty/Avail. Pages 0/74.
+ Elapsed 0/0 sec.
+ </computeroutput></term>
+ <listitem>
+ <para>
+ The analysis for <replaceable class="PARAMETER">table</replaceable> itself.
+ </para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><computeroutput>
+NOTICE: Index <replaceable class="PARAMETER">index</replaceable>: Pages 28;
+ Tuples 1000: Deleted 3000. Elapsed 0/0 sec.
+ </computeroutput></term>
+ <listitem>
+ <para>
+ The analysis for an index on the target table.
+ </para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ </refsect2>
+ </refsynopsisdiv>
- <VARIABLELIST>
- <VARLISTENTRY>
- <TERM>
- <ReturnValue>VACUUM</ReturnValue>
- </TERM>
- <LISTITEM>
- <PARA>
- The command has been accepted and the database is being cleaned.
- </para>
- </listitem>
- </varlistentry>
-
- <VARLISTENTRY>
- <TERM>
- NOTICE: --Relation <REPLACEABLE CLASS="PARAMETER">table</REPLACEABLE>--
- </term>
- <LISTITEM>
- <PARA>
- The report header for <REPLACEABLE CLASS="PARAMETER">table</REPLACEABLE>.
- </para>
- </listitem>
- </varlistentry>
+ <refsect1 id="R1-SQL-VACUUM-1">
+ <refsect1info>
+ <date>1998-10-04</date>
+ </refsect1info>
+ <title>
+ Description
+ </title>
+ <para>
+ <command>VACUUM</command> serves two purposes in
+ <productname>Postgres</productname> as both a means to reclaim storage and
+ also a means to collect information for the optimizer.
+ </para>
- <VARLISTENTRY>
- <TERM>
- NOTICE: Pages 98: Changed 25, Reapped 74, Empty 0, New 0;
- Tup 1000: Vac 3000, Crash 0, UnUsed 0, MinLen 188, MaxLen 188;
- Re-using: Free/Avail. Space 586952/586952; EndEmpty/Avail. Pages 0/74.
- Elapsed 0/0 sec.
- </term>
- <LISTITEM>
- <PARA>
- The analysis for <REPLACEABLE CLASS="PARAMETER">table</REPLACEABLE> itself.
- </para>
- </listitem>
- </varlistentry>
-
- <VARLISTENTRY>
- <TERM>
- NOTICE: Index <REPLACEABLE CLASS="PARAMETER">index</REPLACEABLE>: Pages 28;
- Tuples 1000: Deleted 3000. Elapsed 0/0 sec.
- </term>
- <LISTITEM>
- <PARA>
- The analysis for an index on the target table.
- </para>
- </listitem>
- </varlistentry>
- </VARIABLELIST>
- </para>
- </REFSECT2>
- </REFSYNOPSISDIV>
+ <para>
+ <command>VACUUM</command> opens every class in the database,
+ cleans out records from rolled back transactions, and updates statistics in the
+ system catalogs. The statistics maintained include the number of
+ tuples and number of pages stored in all classes.
+ </para>
- <REFSECT1 ID="R1-SQL-VACUUM-1">
- <REFSECT1INFO>
- <DATE>1998-10-04</DATE>
- </REFSECT1INFO>
- <TITLE>
- Description
- </TITLE>
- <PARA>
- <command>VACUUM</command> serves two purposes in
- <productname>Postgres</productname> as both a means to reclaim storage and
- also a means to collect information for the optimizer.
- </para>
- <para>
- <command>VACUUM</command> opens every class in the database,
- cleans out records from rolled back transactions, and updates statistics in the
- system catalogs. The statistics maintained include the number of
- tuples and number of pages stored in all classes.
+ <para>
+ Running <command>VACUUM</command>
+ periodically will increase the speed of the database in processing user queries.
+ </para>
- Running <command>VACUUM</command>
- periodically will increase the speed of the database in processing user queries.
- </para>
+ <refsect2 id="R2-SQL-VACUUM-3">
+ <refsect2info>
+ <date>1998-10-04</date>
+ </refsect2info>
+ <title>
+ Notes
+ </title>
+ <para>
+ The open database is the target for <command>VACUUM</command>.
+ </para>
+ <para>
+ We recommend that active production databases be cleaned nightly, in order
+ to keep statistics relatively current. The <command>VACUUM</command>
+ query may be executed at any time, however. In particular, after
+ copying a large class into <productname>Postgres</productname>
+ or after deleting a large number of
+ records, it may be a good idea to issue a <command>VACUUM</command>
+ query. This will update the system catalogs with the results of all
+ recent changes, and allow the <productname>Postgres</productname>
+ query optimizer to make better choices in planning user queries.
+ </para>
+ <para>
+ If the server crashes during a <command>VACUUM</command> command,
+ chances are it will leave a lock file hanging around.
+ Attempts to re-run the <command>VACUUM</command> command
+ result in an error message about the creation of a lock file. If you
+ are sure <command>VACUUM</command> is not running,
+ remove the <filename>pg_vlock</filename> file in your
+ database directory
+ (i.e. <filename><envar>PGDATA</envar>/base/dbname/pg_vlock</filename>).
+ </para>
+ </refsect2>
+ </refsect1>
- <REFSECT2 ID="R2-SQL-VACUUM-3">
- <REFSECT2INFO>
- <DATE>1998-10-04</DATE>
- </REFSECT2INFO>
- <TITLE>
- Notes
- </TITLE>
- <PARA>
- The open database is target for <command>VACUUM</command>.
- </para>
- <para>
- We recommend that active production databases be cleaned nightly, in order
- to keep statistics relatively current. The <command>VACUUM</command>
- query may be executed at any time, however. In particular, after
- copying a large class into <productname>Postgres</productname>
- or after deleting a large number of
- records, it may be a good idea to issue a <command>VACUUM</command>
- query. This will update the system catalogs with the results of all
- recent changes, and allow the <productname>Postgres</productname>
- query optimizer to make better choices in planning user queries.
- </para>
- <para>
- If the server crashes during a <command>VACUUM</command> command,
- chances are it will leave a lock file hanging around.
- Attempts to re-run the <command>VACUUM</command> command
- result in an error message about the creation of a lock file. If you
- are sure <command>VACUUM</command> is not running,
- remove the <filename>pg_vlock</filename> file in your
- database directory
- (i.e. <filename><envar>PGDATA</envar>/base/dbname/pg_vlock</filename>).
- </PARA>
-
- </REFSECT2>
- </refsect1>
+ <refsect1 id="R1-SQL-VACUUM-2">
+ <title>
+ Usage
+ </title>
+ <para>
+ The following is an example from running <command>VACUUM</command> on a table
+ in the regression database:
- <REFSECT1 ID="R1-SQL-VACUUM-2">
- <TITLE>
- Usage
- </TITLE>
- <PARA>
- The following is an example from running <command>VACUUM</command> on a table
- in the regression database:
-
- <ProgramListing>
+ <programlisting>
regression=> vacuum verbose analyze onek;
NOTICE: --Relation onek--
NOTICE: Pages 98: Changed 25, Reapped 74, Empty 0, New 0;
@@ -223,24 +217,41 @@ NOTICE: Index onek_hundred: Pages 12; Tuples 1000: Deleted 1000. Elapsed 0/0 se
NOTICE: Index onek_unique2: Pages 19; Tuples 1000: Deleted 1000. Elapsed 0/0 sec.
NOTICE: Index onek_unique1: Pages 17; Tuples 1000: Deleted 1000. Elapsed 0/0 sec.
VACUUM
- </ProgramListing>
- </para>
- </REFSECT1>
+ </programlisting>
+ </para>
+ </refsect1>
+
+ <refsect1 id="R1-SQL-VACUUM-3">
+ <title>
+ Compatibility
+ </title>
+ <refsect2 id="R2-SQL-VACUUM-4">
+ <refsect2info>
+ <date>1998-10-04</date>
+ </refsect2info>
+ <title>
+ SQL92
+ </title>
+ <para>
+ There is no <command>VACUUM</command> statement in SQL92.
+ </para>
+ </refsect2>
+ </refsect1>
+</refentry>
- <REFSECT1 ID="R1-SQL-VACUUM-3">
- <TITLE>
- Compatibility
- </TITLE>
- <REFSECT2 ID="R2-SQL-VACUUM-4">
- <REFSECT2INFO>
- <DATE>1998-10-04</DATE>
- </REFSECT2INFO>
- <TITLE>
- SQL92
- </TITLE>
- <PARA>
- There is no <COMMAND>VACUUM</COMMAND> statement in SQL92.
- </para>
- </refsect2>
- </refsect1>
-</REFENTRY>
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:nil
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:1
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-default-dtd-file:"../reference.ced"
+sgml-exposed-tags:nil
+sgml-local-catalogs:"/usr/lib/sgml/catalog"
+sgml-local-ecat-files:nil
+End:
+-->