Update guidance for running vacuumdb after pg_upgrade.
authorNathan Bossart
Tue, 18 Mar 2025 21:32:56 +0000 (16:32 -0500)
committerNathan Bossart
Tue, 18 Mar 2025 21:32:56 +0000 (16:32 -0500)
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
Discussion: https://postgr.es/m/Z5O1bpcwDrMgyrYy%40nathan

doc/src/sgml/ref/pgupgrade.sgml
src/bin/pg_upgrade/check.c

index 9ef7a84eed04b016ca76819d8592d50085af5783..5db761d1ff19fbf045884496f1f59ae0466f0a88 100644 (file)
@@ -807,10 +807,11 @@ psql --username=postgres --file=script.sql postgres
     
 
     
-     Using vacuumdb --all --analyze-only can efficiently
-     generate such statistics, and the use of 
-     can speed it up.  Option 
-     can be used to generate minimal statistics quickly.
+     Using vacuumdb --all --analyze-only --missing-stats-only
+     can efficiently generate such statistics.  Alternatively,
+     vacuumdb --all --analyze-in-stages --missing-stats-only
+     can be used to generate minimal statistics quickly.  For either command,
+     the use of  can speed it up.
      If vacuum_cost_delay is set to a non-zero
      value, this can be overridden to speed up statistics generation
      using PGOPTIONS, e.g., PGOPTIONS='-c
index d32fc3d88ec7f702ddccb5b7f65de7e812b617ea..88daa8080351327263314cf6ee238e4705fa8777 100644 (file)
@@ -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,