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