pg.ddx.io  pgsql-docs@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Laurenz Albe <laurenz.albe@cybertec.at>
To: pgsql-docs@postgresql.org
Subject: Remove recommendation for nightly VACUUM
Date: Mon, 27 Jun 2022 08:31:46 +0200
Message-ID: <6f5e3da98fec14640f389d7b84c3b413833697f4.camel@cybertec.at> (raw)

A customer recently pointed me to
https://www.postgresql.org/docs/current/sql-vacuum.html
and asked if I agree with the statement there that a nightly
scheduled VACUUM were a good idea:

"We recommend that active production databases be vacuumed frequently
 (at least nightly), in order to remove dead rows. After adding or
 deleting a large number of rows, it might 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
 PostgreSQL query planner to make better choices in planning queries."

Looking at the Git history, most of that paragraph is from a time
when autovacuum did not yet exist or was much less reliable than it
is now.  So I suggest removing all that and pointing to autovacuum
instead, as done in the attached patch.

Yours,
Laurenz Albe

Attachments:

  [text/x-patch] 0001-Remove-outdated-recommendation-for-manual-VACUUM.patch (2.4K, ../6f5e3da98fec14640f389d7b84c3b413833697f4.camel@cybertec.at/2-0001-Remove-outdated-recommendation-for-manual-VACUUM.patch)
  download | inline diff:
From efd3c4080c48bd8c3512fb7f6a215fe96a3912ce Mon Sep 17 00:00:00 2001
From: Laurenz Albe <laurenz.albe@cybertec.at>
Date: Mon, 27 Jun 2022 08:25:07 +0200
Subject: [PATCH] Remove outdated recommendation for manual VACUUM

We have been having a working and highly tunable autovacuum
for at least a decade now, so remove the recommendation to
vacuum tables at least every night.
Autovacuum is now also triggered by INSERTs, so we can also
remove the recommendation to run VACUUM (ANALYZE) after lots
of INSERTs or DELETEs.

Instead, suggest using autovacuum by moving the respective
paragraph up to where the importance of VACUUM is emphasized.
---
 doc/src/sgml/ref/vacuum.sgml | 20 +++++---------------
 1 file changed, 5 insertions(+), 15 deletions(-)

diff --git a/doc/src/sgml/ref/vacuum.sgml b/doc/src/sgml/ref/vacuum.sgml
index 3df32b58ee..68c4450c29 100644
--- a/doc/src/sgml/ref/vacuum.sgml
+++ b/doc/src/sgml/ref/vacuum.sgml
@@ -377,15 +377,11 @@ VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ ANALYZE ] [ <replaceable class="paramet
    </para>
 
    <para>
-    We recommend that active production databases be
-    vacuumed frequently (at least nightly), in order to
-    remove dead rows. After adding or deleting a large number
-    of rows, it might be a good idea to issue a <command>VACUUM
-    ANALYZE</command> command for the affected table. This will update the
-    system catalogs with
-    the results of all recent changes, and allow the
-    <productname>PostgreSQL</productname> query planner to make better
-    choices in planning queries.
+    We recommend that active production databases be vacuumed regularly in
+    order to remove dead rows.  <productname>PostgreSQL</productname> includes
+    an <quote>autovacuum</quote> facility which can automate routine vacuum
+    maintenance.  For more information about automatic and manual vacuuming,
+    see <xref linkend="routine-vacuuming"/>.
    </para>
 
    <para>
@@ -412,12 +408,6 @@ VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ ANALYZE ] [ <replaceable class="paramet
     details.
    </para>
 
-   <para>
-    <productname>PostgreSQL</productname> includes an <quote>autovacuum</quote>
-    facility which can automate routine vacuum maintenance.  For more
-    information about automatic and manual vacuuming, see
-    <xref linkend="routine-vacuuming"/>.
-   </para>
    <para>
     Each backend running <command>VACUUM</command> without the
     <literal>FULL</literal> option will report its progress in the
-- 
2.35.3



view thread (6+ messages)  latest in thread

Message-ID: <6f5e3da98fec14640f389d7b84c3b413833697f4.camel@cybertec.at>
Permalink:  ../6f5e3da98fec14640f389d7b84c3b413833697f4.camel@cybertec.at/
Also on:    postgresql.org/message-id/6f5e3da98fec14640f389d7b84c3b413833697f4.camel@cybertec.at

 ·  · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-docs@postgresql.org
  Cc: laurenz.albe@cybertec.at
  Subject: Re: Remove recommendation for nightly VACUUM
  In-Reply-To: <6f5e3da98fec14640f389d7b84c3b413833697f4.camel@cybertec.at>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox