|
493 | 493 | will skip pages that don't have any dead row versions even if those pages
|
494 | 494 | might still have row versions with old XID values. Therefore, normal
|
495 | 495 | <command>VACUUM</command>s won't always freeze every old row version in the table.
|
496 |
| - Periodically, <command>VACUUM</command> will perform an <firstterm>aggressive |
497 |
| - vacuum</firstterm>, skipping only those pages which contain neither dead rows nor |
498 |
| - any unfrozen XID or MXID values. |
| 496 | + When that happens, <command>VACUUM</command> will eventually need to perform an |
| 497 | + <firstterm>aggressive vacuum</firstterm>, which will freeze all eligible unfrozen |
| 498 | + XID and MXID values, including those from all-visible but not all-frozen pages. |
| 499 | + In practice most tables require periodic aggressive vacuuming. |
499 | 500 | <xref linkend="guc-vacuum-freeze-table-age"/>
|
500 | 501 | controls when <command>VACUUM</command> does that: all-visible but not all-frozen
|
501 | 502 | pages are scanned if the number of transactions that have passed since the
|
502 | 503 | last such scan is greater than <varname>vacuum_freeze_table_age</varname> minus
|
503 | 504 | <varname>vacuum_freeze_min_age</varname>. Setting
|
504 | 505 | <varname>vacuum_freeze_table_age</varname> to 0 forces <command>VACUUM</command> to
|
505 |
| - use this more aggressive strategy for all scans. |
| 506 | + always use its aggressive strategy. |
506 | 507 | </para>
|
507 | 508 |
|
508 | 509 | <para>
|
@@ -711,8 +712,9 @@ HINT: Stop the postmaster and vacuum that database in single-user mode.
|
711 | 712 | </para>
|
712 | 713 |
|
713 | 714 | <para>
|
714 |
| - Aggressive <command>VACUUM</command> scans, regardless of |
715 |
| - what causes them, enable advancing the value for that table. |
| 715 | + Aggressive <command>VACUUM</command>s, regardless of what causes |
| 716 | + them, are <emphasis>guaranteed</emphasis> to be able to advance |
| 717 | + the table's <structfield>relminmxid</structfield>. |
716 | 718 | Eventually, as all tables in all databases are scanned and their
|
717 | 719 | oldest multixact values are advanced, on-disk storage for older
|
718 | 720 | multixacts can be removed.
|
|
0 commit comments