postgres.git / summary / log / commit / refs

commit    c9d502eb68094d817fe94c2e954f6fdbb62f4d48
Author:   Nathan Bossart <nathan@postgresql.org>
Date:     Tue Mar 18 21:32:56 2025 +0000
First released in: 18.0

    Update guidance for running vacuumdb after pg_upgrade.
    
    Now that pg_upgrade can carry over most optimizer statistics, we
    should recommend using vacuumdb's new --missing-stats-only option
    to only analyze relations that are missing statistics.
    
    Reviewed-by: John Naylor <johncnaylorls@gmail.com>
    Discussion: https://postgr.es/m/Z5O1bpcwDrMgyrYy%40nathan


doc/src/sgml/ref/pgupgrade.sgml | 9 +++++---- src/bin/pg_upgrade/check.c | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/doc/src/sgml/ref/pgupgrade.sgml b/doc/src/sgml/ref/pgupgrade.sgml index 9ef7a84eed0..5db761d1ff1 100644 --- a/doc/src/sgml/ref/pgupgrade.sgml +++ b/doc/src/sgml/ref/pgupgrade.sgml @@ -807,10 +807,11 @@ psql --username=postgres --file=script.sql postgres </para> <para> - Using <command>vacuumdb --all --analyze-only</command> can efficiently - generate such statistics, and the use of <option>--jobs</option> - can speed it up. Option <option>--analyze-in-stages</option> - can be used to generate minimal statistics quickly. + Using <command>vacuumdb --all --analyze-only --missing-stats-only</command> + can efficiently generate such statistics. Alternatively, + <command>vacuumdb --all --analyze-in-stages --missing-stats-only</command> + can be used to generate minimal statistics quickly. For either command, + the use of <option>--jobs</option> can speed it up. If <varname>vacuum_cost_delay</varname> is set to a non-zero value, this can be overridden to speed up statistics generation using <envar>PGOPTIONS</envar>, e.g., <literal>PGOPTIONS='-c diff --git a/src/bin/pg_upgrade/check.c b/src/bin/pg_upgrade/check.c index d32fc3d88ec..88daa808035 100644 --- a/src/bin/pg_upgrade/check.c +++ b/src/bin/pg_upgrade/check.c @@ -781,7 +781,7 @@ output_completion_banner(char *deletion_script_file_name) pg_log(PG_REPORT, "Some optimizer statistics may not have been transferred by pg_upgrade.\n" "Once you start the new server, consider running:\n" - " %s/vacuumdb %s--all --analyze-in-stages", new_cluster.bindir, user_specification.data); + " %s/vacuumdb %s--all --analyze-in-stages --missing-stats-only", new_cluster.bindir, user_specification.data); if (deletion_script_file_name) pg_log(PG_REPORT, [parent: edba754f052e]