mirror of
https://github.com/postgres/postgres.git
synced 2025-09-02 04:21:28 +03:00
Add option SKIP_LOCKED to VACUUM and ANALYZE
When specified, this option allows VACUUM to skip the work on a relation if there is a conflicting lock on it when trying to open it at the beginning of its processing. Similarly to autovacuum, this comes with a couple of limitations while the relation is processed which can cause the process to still block: - when opening the relation indexes. - when acquiring row samples for table inheritance trees, partition trees or certain types of foreign tables, and that a lock is taken on some leaves of such trees. Author: Nathan Bossart Reviewed-by: Michael Paquier, Andres Freund, Masahiko Sawada Discussion: https://postgr.es/m/9EF7EBE4-720D-4CF1-9D0E-4403D7E92990@amazon.com Discussion: https://postgr.es/m/20171201160907.27110.74730@wrigleys.postgresql.org
This commit is contained in:
@@ -27,6 +27,7 @@ ANALYZE [ VERBOSE ] [ <replaceable class="parameter">table_and_columns</replacea
|
||||
<phrase>where <replaceable class="parameter">option</replaceable> can be one of:</phrase>
|
||||
|
||||
VERBOSE
|
||||
SKIP_LOCKED
|
||||
|
||||
<phrase>and <replaceable class="parameter">table_and_columns</replaceable> is:</phrase>
|
||||
|
||||
@@ -76,6 +77,24 @@ ANALYZE [ VERBOSE ] [ <replaceable class="parameter">table_and_columns</replacea
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><literal>SKIP_LOCKED</literal></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Specifies that <command>ANALYZE</command> should not wait for any
|
||||
conflicting locks to be released when beginning work on a relation:
|
||||
if a relation cannot be locked immediately without waiting, the relation
|
||||
is skipped. Note that even with this option, <command>ANALYZE</command>
|
||||
may still block when opening the relation's indexes or when acquiring
|
||||
sample rows from partitions, table inheritance children, and some
|
||||
types of foreign tables. Also, while <command>ANALYZE</command>
|
||||
ordinarily processes all partitions of specified partitioned tables,
|
||||
this option will cause <command>ANALYZE</command> to skip all
|
||||
partitions if there is a conflicting lock on the partitioned table.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><replaceable class="parameter">table_name</replaceable></term>
|
||||
<listitem>
|
||||
|
Reference in New Issue
Block a user