mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
Add option PROCESS_TOAST to VACUUM
This option controls if toast tables associated with a relation are vacuumed or not when running a manual VACUUM. It was already possible to trigger a manual VACUUM on a toast relation without processing its main relation, but a manual vacuum on a main relation always forced a vacuum on its toast table. This is useful in scenarios where the level of bloat or transaction age of the main and toast relations differs a lot. This option is an extension of the existing VACOPT_SKIPTOAST that was used by autovacuum to control if toast relations should be skipped or not. This internal flag is renamed to VACOPT_PROCESS_TOAST for consistency with the new option. A new option switch, called --no-process-toast, is added to vacuumdb. Author: Nathan Bossart Reviewed-by: Kirk Jamison, Michael Paquier, Justin Pryzby Discussion: https://postgr.es/m/BA8951E9-1524-48C5-94AF-73B1F0D7857F@amazon.com
This commit is contained in:
@ -33,6 +33,7 @@ VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ ANALYZE ] [ <replaceable class="paramet
|
||||
DISABLE_PAGE_SKIPPING [ <replaceable class="parameter">boolean</replaceable> ]
|
||||
SKIP_LOCKED [ <replaceable class="parameter">boolean</replaceable> ]
|
||||
INDEX_CLEANUP [ <replaceable class="parameter">boolean</replaceable> ]
|
||||
PROCESS_TOAST [ <replaceable class="parameter">boolean</replaceable> ]
|
||||
TRUNCATE [ <replaceable class="parameter">boolean</replaceable> ]
|
||||
PARALLEL <replaceable class="parameter">integer</replaceable>
|
||||
|
||||
@ -210,6 +211,20 @@ VACUUM [ FULL ] [ FREEZE ] [ VERBOSE ] [ ANALYZE ] [ <replaceable class="paramet
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><literal>PROCESS_TOAST</literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Specifies that <command>VACUUM</command> should attempt to process the
|
||||
corresponding <literal>TOAST</literal> table for each relation, if one
|
||||
exists. This is normally the desired behavior and is the default.
|
||||
Setting this option to false may be useful when it is only necessary to
|
||||
vacuum the main relation. This option is required when the
|
||||
<literal>FULL</literal> option is used.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><literal>TRUNCATE</literal></term>
|
||||
<listitem>
|
||||
|
@ -244,6 +244,21 @@ PostgreSQL documentation
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>--no-process-toast</option></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Skip the TOAST table associated with the table to vacuum, if any.
|
||||
</para>
|
||||
<note>
|
||||
<para>
|
||||
This option is only available for servers running
|
||||
<productname>PostgreSQL</productname> 14 and later.
|
||||
</para>
|
||||
</note>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>--no-truncate</option></term>
|
||||
<listitem>
|
||||
|
Reference in New Issue
Block a user