summaryrefslogtreecommitdiff
path: root/contrib/pgbench/pgbench.c
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2012-07-23 14:38:34 -0400
committerRobert Haas <rhaas@postgresql.org>2012-07-23 14:42:35 -0400
commit46b2b7e0ff06498d51ebf08871c73e5b5e0aa050 (patch)
tree8d8d38ccc33c4fb6a3c26b6d963a3cdec41f17f7 /contrib/pgbench/pgbench.c
parentb71258af5613e627bb2b3b1e1874abe5c0226dc4 (diff)
Make pgbench vacuum before building indexes.
This is apparently faster than doing things the other way around when the scale factor is large. Along the way, adjust -n to suppress vacuuming during initialization as well as during test runs. Jeff Janes, with some small changes by me.
Diffstat (limited to 'contrib/pgbench/pgbench.c')
-rw-r--r--contrib/pgbench/pgbench.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/contrib/pgbench/pgbench.c b/contrib/pgbench/pgbench.c
index a744f5fedb5..00cab73f909 100644
--- a/contrib/pgbench/pgbench.c
+++ b/contrib/pgbench/pgbench.c
@@ -345,6 +345,7 @@ usage(void)
" %s [OPTION]... [DBNAME]\n"
"\nInitialization options:\n"
" -i invokes initialization mode\n"
+ " -n do not run VACUUM after initialization\n"
" -F NUM fill factor\n"
" -s NUM scaling factor\n"
" --foreign-keys\n"
@@ -1282,7 +1283,7 @@ disconnect_all(CState *state, int length)
/* create tables and setup data */
static void
-init(void)
+init(bool is_no_vacuum)
{
/*
* Note: TPC-B requires at least 100 bytes per row, and the "filler"
@@ -1433,6 +1434,16 @@ init(void)
}
executeStatement(con, "commit");
+ /* vacuum */
+ if (!is_no_vacuum)
+ {
+ fprintf(stderr, "vacuum...\n");
+ executeStatement(con, "vacuum analyze pgbench_branches");
+ executeStatement(con, "vacuum analyze pgbench_tellers");
+ executeStatement(con, "vacuum analyze pgbench_accounts");
+ executeStatement(con, "vacuum analyze pgbench_history");
+ }
+
/*
* create indexes
*/
@@ -1469,12 +1480,6 @@ init(void)
}
}
- /* vacuum */
- fprintf(stderr, "vacuum...");
- executeStatement(con, "vacuum analyze pgbench_branches");
- executeStatement(con, "vacuum analyze pgbench_tellers");
- executeStatement(con, "vacuum analyze pgbench_accounts");
- executeStatement(con, "vacuum analyze pgbench_history");
fprintf(stderr, "done.\n");
PQfinish(con);
@@ -2139,7 +2144,7 @@ main(int argc, char **argv)
if (is_init_mode)
{
- init();
+ init(is_no_vacuum);
exit(0);
}