From 05f43650fcf008a12dd92db4d1ae15c43046e62c Mon Sep 17 00:00:00 2001
From: Alvaro Herrera <alvherre@alvh.no-ip.org>
Date: Fri, 7 Aug 2009 20:54:31 +0000
Subject: [PATCH] Document that autovacuum may run ANALYZE

---
 doc/src/sgml/backup.sgml         | 10 +++++-----
 doc/src/sgml/indices.sgml        |  6 ++++--
 doc/src/sgml/maintenance.sgml    |  4 ++--
 doc/src/sgml/perform.sgml        | 11 ++++++++---
 doc/src/sgml/ref/pg_dump.sgml    |  6 ++++--
 doc/src/sgml/ref/pg_restore.sgml |  6 ++++--
 6 files changed, 27 insertions(+), 16 deletions(-)

diff --git a/doc/src/sgml/backup.sgml b/doc/src/sgml/backup.sgml
index b280859deaa..f9e45ec3d8c 100644
--- a/doc/src/sgml/backup.sgml
+++ b/doc/src/sgml/backup.sgml
@@ -1,4 +1,4 @@
-<!-- $PostgreSQL: pgsql/doc/src/sgml/backup.sgml,v 2.129 2009/06/26 22:06:11 tgl Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/backup.sgml,v 2.130 2009/08/07 20:54:31 alvherre Exp $ -->
 
 <chapter id="backup">
  <title>Backup and Restore</title>
@@ -168,10 +168,10 @@ pg_dump -h <replaceable>host1</> <replaceable>dbname</> | psql -h <replaceable>h
    <para>
     After restoring a backup, it is wise to run <xref
     linkend="sql-analyze" endterm="sql-analyze-title"> on each
-    database so the query optimizer has useful statistics. An easy way
-    to do this is to run <command>vacuumdb -a -z</>; this is
-    equivalent to running <command>VACUUM ANALYZE</> on each database
-    manually.  For more advice on how to load large amounts of data
+    database so the query optimizer has useful statistics;
+    see <xref linkend="vacuum-for-statistics" endterm="vacuum-for-statistics-title">
+    and <xref linkend="autovacuum" endterm="autovacuum-title"> for more information.
+    For more advice on how to load large amounts of data
     into <productname>PostgreSQL</> efficiently, refer to <xref
     linkend="populate">.
    </para>
diff --git a/doc/src/sgml/indices.sgml b/doc/src/sgml/indices.sgml
index 974e1415f65..7801b099f22 100644
--- a/doc/src/sgml/indices.sgml
+++ b/doc/src/sgml/indices.sgml
@@ -1,4 +1,4 @@
-<!-- $PostgreSQL: pgsql/doc/src/sgml/indices.sgml,v 1.78 2009/06/17 21:58:49 tgl Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/indices.sgml,v 1.79 2009/08/07 20:54:31 alvherre Exp $ -->
 
 <chapter id="indexes">
  <title id="indexes-title">Indexes</title>
@@ -1025,7 +1025,9 @@ SELECT am.amname AS index_method,
      real statistics, some default values are assumed, which are
      almost certain to be inaccurate.  Examining an application's
      index usage without having run <command>ANALYZE</command> is
-     therefore a lost cause.
+     therefore a lost cause. 
+     See <xref linkend="vacuum-for-statistics" endterm="vacuum-for-statistics-title">
+     and <xref linkend="autovacuum" endterm="autovacuum-title"> for more information.
     </para>
    </listitem>
 
diff --git a/doc/src/sgml/maintenance.sgml b/doc/src/sgml/maintenance.sgml
index 019d3f2c571..80b6365226b 100644
--- a/doc/src/sgml/maintenance.sgml
+++ b/doc/src/sgml/maintenance.sgml
@@ -1,4 +1,4 @@
-<!-- $PostgreSQL: pgsql/doc/src/sgml/maintenance.sgml,v 1.95 2009/06/17 13:59:28 petere Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/maintenance.sgml,v 1.96 2009/08/07 20:54:31 alvherre Exp $ -->
 
 <chapter id="maintenance">
  <title>Routine Database Maintenance Tasks</title>
@@ -253,7 +253,7 @@
   </sect2>
 
   <sect2 id="vacuum-for-statistics">
-   <title>Updating Planner Statistics</title>
+   <title id="vacuum-for-statistics-title">Updating Planner Statistics</title>
 
    <indexterm zone="vacuum-for-statistics">
     <primary>statistics</primary>
diff --git a/doc/src/sgml/perform.sgml b/doc/src/sgml/perform.sgml
index 1a631d3d91f..d1ae3efb330 100644
--- a/doc/src/sgml/perform.sgml
+++ b/doc/src/sgml/perform.sgml
@@ -1,4 +1,4 @@
-<!-- $PostgreSQL: pgsql/doc/src/sgml/perform.sgml,v 1.71 2009/06/17 21:58:49 tgl Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/perform.sgml,v 1.72 2009/08/07 20:54:31 alvherre Exp $ -->
 
  <chapter id="performance-tips">
   <title>Performance Tips</title>
@@ -974,7 +974,10 @@ SELECT * FROM x, y, a, b, c WHERE something AND somethingelse;
     table.  With no statistics or obsolete statistics, the planner might
     make poor decisions during query planning, leading to poor
     performance on any tables with inaccurate or nonexistent
-    statistics.
+    statistics.  Note that if the autovacuum daemon is enabled, it might
+    run <command>ANALYZE</command> automatically; see
+    <xref linkend="vacuum-for-statistics" endterm="vacuum-for-statistics-title">
+    and <xref linkend="autovacuum" endterm="autovacuum-title"> for more information.
    </para>
   </sect2>
 
@@ -1054,7 +1057,9 @@ SELECT * FROM x, y, a, b, c WHERE something AND somethingelse;
     while loading the data, but don't bother increasing
     <varname>maintenance_work_mem</varname>; rather, you'd do that while
     manually recreating indexes and foreign keys afterwards.
-    And don't forget to <command>ANALYZE</> when you're done.
+    And don't forget to <command>ANALYZE</> when you're done; see
+    <xref linkend="vacuum-for-statistics" endterm="vacuum-for-statistics-title">
+    and <xref linkend="autovacuum" endterm="autovacuum-title"> for more information.
    </para>
   </sect2>
   </sect1>
diff --git a/doc/src/sgml/ref/pg_dump.sgml b/doc/src/sgml/ref/pg_dump.sgml
index 0f5068ef32e..9386ff8109a 100644
--- a/doc/src/sgml/ref/pg_dump.sgml
+++ b/doc/src/sgml/ref/pg_dump.sgml
@@ -1,5 +1,5 @@
 <!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/pg_dump.sgml,v 1.113 2009/03/22 16:44:26 tgl Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/pg_dump.sgml,v 1.114 2009/08/07 20:54:31 alvherre Exp $
 PostgreSQL documentation
 -->
 
@@ -834,7 +834,9 @@ CREATE DATABASE foo WITH TEMPLATE template0;
    does not contain the statistics used by the optimizer to make
    query planning decisions.  Therefore, it is wise to run
    <command>ANALYZE</command> after restoring from a dump file
-   to ensure good performance.  The dump file also does not
+   to ensure good performance; see <xref linkend="vacuum-for-statistics">
+   and <xref linkend="autovacuum"> for more information.
+   The dump file also does not
    contain any <command>ALTER DATABASE ... SET</> commands;
    these settings are dumped by <xref linkend="app-pg-dumpall">,
    along with database users and other installation-wide settings.
diff --git a/doc/src/sgml/ref/pg_restore.sgml b/doc/src/sgml/ref/pg_restore.sgml
index 053bcba87da..73ae4c94385 100644
--- a/doc/src/sgml/ref/pg_restore.sgml
+++ b/doc/src/sgml/ref/pg_restore.sgml
@@ -1,4 +1,4 @@
-<!-- $PostgreSQL: pgsql/doc/src/sgml/ref/pg_restore.sgml,v 1.81 2009/03/20 09:21:08 petere Exp $ -->
+<!-- $PostgreSQL: pgsql/doc/src/sgml/ref/pg_restore.sgml,v 1.82 2009/08/07 20:54:31 alvherre Exp $ -->
 
 <refentry id="APP-PGRESTORE">
  <refmeta>
@@ -679,7 +679,9 @@ CREATE DATABASE foo WITH TEMPLATE template0;
 
   <para>
    Once restored, it is wise to run <command>ANALYZE</> on each
-   restored table so the optimizer has useful statistics.
+   restored table so the optimizer has useful statistics; see
+   <xref linkend="vacuum-for-statistics"> and
+   <xref linkend="autovacuum"> for more information.
   </para>
 
  </refsect1>
-- 
GitLab