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