<!--
$Header: /usr/prj/pg/cvsroot/doc/doc/src/sgml/ref/vacuum.sgml,v 1.6 2001/09/10 09:04:54 k-kondo Exp $
Postgres documentation
-->

<refentry id="SQL-VACUUM">
 <refmeta>
  <refentrytitle id="sql-vacuum-title">
   VACUUM
  </refentrytitle>
  <refmiscinfo>SQL<!-- - Language Statements-->言語</refmiscinfo>
 </refmeta>
 <refnamediv>
  <refname>
   VACUUM
  </refname>
  <refpurpose>
   <!--Clean and analyze a <productname>Postgres</productname> database-->
   <productname>Postgres</productname>データベースの不要領域を掃除/解析します。<indexterm><primary>VACUUM</primary></indexterm><indexterm><primary>SQL</primary><secondary>VACUUM</secondary></indexterm><indexterm><primary sortas="でーたべーす">データベース</primary><secondary sortas="ふようりょういきのそうじとかいせき">不要領域の掃除と解析</secondary></indexterm>
  </refpurpose>
 </refnamediv>
 <refsynopsisdiv>
  <refsynopsisdivinfo>
   <date>1999-07-20</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>

  <refsect2 id="R2-SQL-VACUUM-1">
   <refsect2info>
    <date>1998-10-04</date>
   </refsect2info>
   <title>
    <!--Inputs-->入力
   </title>

    <variablelist>
     <varlistentry>
      <term>VERBOSE</term>
      <listitem>
       <para>
	<!--Prints a detailed vacuum activity report for each table.-->
        各テーブルについてvacuumの詳細な活動報告を出力します。
       </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.-->

        オプティマイザが使用する列統計情報を更新し、問い合わせを実行する最も効率的な方法を決定できるようにします。

       </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>
  </refsect2>

  <refsect2 id="R2-SQL-VACUUM-2">
   <refsect2info>
    <date>1998-10-04</date>
   </refsect2info>
   <title>
    <!--Outputs-->出力
   </title>

    <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>

     <varlistentry>
      <term><computeroutput>
NOTICE:  --Relation <replaceable class="PARAMETER">table</replaceable>--
       </computeroutput></term>
      <listitem>
       <para>
	<!--The report header for <replaceable class="PARAMETER">table</replaceable>.-->

        <replaceable class="PARAMETER">table</replaceable>に関する報告のヘッダーです。

       </para>
      </listitem>
     </varlistentry>

     <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.-->

        <replaceable class="PARAMETER">table</replaceable>に関する解析結果です。
       </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>
  </refsect2>
 </refsynopsisdiv>

 <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.-->

   <productname>Postgres</productname>では、<command>VACUUM</command>には保存領域の回収/確保とオプティマイザ用の情報収集という2つの用途があります。

  </para>

  <para>
   <!--<command>VACUUM</command> opens every table 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 tables.-->

   <command>VACUUM</command>は、データベース内の全テーブルを開き、ロールバックされたトランザクションからレコードを掃除し、システムカタログ内の統計情報を更新します。保全される統計情報には、すべてのテーブルに格納されているタプルの数とページ数が含まれます。

  </para>

  <para>
   <!--<command>VACUUM ANALYZE</command> collects statistics representing the
   dispersion of the data in each column.
   This information is valuable when several query execution paths are possible.-->

   <command>VACUUM ANALYZE</command>は各列のデータ分布の統計情報を収集します。この情報は、問い合わせを実行する経路が複数存在する場合に有用です。

  </para>

  <para>
   <!--Running <command>VACUUM</command>
   periodically will increase the speed of the database in processing user queries.-->

   <command>VACUUM</command>を定期的に実行すれば、データベースの問い合わせの処理速度が向上します。

  </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>.-->

    開いているデータベースが<command>VACUUM</command>の対象となります。
   </para>

   <para>
    <!--We recommend that active production databases be
    <command>VACUUM</command>-ed nightly, in order to remove
    expired rows. After copying a large table into
    <productname>Postgres</productname> or after deleting a large number
    of records, it may be a good idea to issue a <command>VACUUM
    ANALYZE</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.-->

    不要となった行を削除した状態に保つために、実運用状態のデータベースに対して毎晩定期的に<command>VACUUM</command>を実行することを推奨します。巨大なテーブルを<productname>Postgres</productname>にコピーした後や多くのレコードを削除した後に、<command>VACUUM ANALYZE</command>問い合わせの発行を行うことを推奨します。これによりシステムカタログは最近なされた変更のすべてを反映したものになり、<productname>Postgres</productname>の問い合わせオプティマイザが、問い合わせの計画作成時によりよい選択をできるようになります。
   </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:-->

   以下の例は、regressionデータベース内のテーブルに<command>VACUUM</command>を実行した場合のものです。
</para>

<programlisting>
regression=> vacuum verbose analyze onek;
NOTICE:  --Relation onek--
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.
NOTICE:  Index onek_stringu1: Pages 28; Tuples 1000: Deleted 3000. Elapsed 0/0 sec.
NOTICE:  Index onek_hundred: Pages 12; Tuples 1000: Deleted 3000. Elapsed 0/0 sec.
NOTICE:  Index onek_unique2: Pages 19; Tuples 1000: Deleted 3000. Elapsed 0/0 sec.
NOTICE:  Index onek_unique1: Pages 17; Tuples 1000: Deleted 3000. Elapsed 0/0 sec.
NOTICE:  Rel onek: Pages: 98 --> 25; Tuple(s) moved: 1000. Elapsed 0/1 sec.
NOTICE:  Index onek_stringu1: Pages 28; Tuples 1000: Deleted 1000. Elapsed 0/0 sec.
NOTICE:  Index onek_hundred: Pages 12; Tuples 1000: Deleted 1000. Elapsed 0/0 sec.
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>
 </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 <acronym>SQL92</acronym>.-->
    <acronym>SQL92</acronym>には<command>VACUUM</command>文はありません。
   </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:
-->
