diff --git a/src/bin/pgbench/pgbench.c b/src/bin/pgbench/pgbench.c index e37496c971..23e0fd261c 100644 --- a/src/bin/pgbench/pgbench.c +++ b/src/bin/pgbench/pgbench.c @@ -2685,7 +2685,12 @@ init(bool is_no_vacuum) instr_time start, diff; double elapsed_sec, - remaining_sec; + remaining_sec, + insert_sec, + commit_sec, + vaccum_sec, + index_sec, + total_sec; int log_interval = 1; if ((con = doConnect()) == NULL) @@ -2830,8 +2835,21 @@ init(bool is_no_vacuum) fprintf(stderr, "PQendcopy failed\n"); exit(1); } + + INSTR_TIME_SET_CURRENT(diff); + INSTR_TIME_SUBTRACT(diff, start); + insert_sec = INSTR_TIME_GET_DOUBLE(diff); + + INSTR_TIME_SET_CURRENT(start); + executeStatement(con, "commit"); + INSTR_TIME_SET_CURRENT(diff); + INSTR_TIME_SUBTRACT(diff, start); + commit_sec = INSTR_TIME_GET_DOUBLE(diff); + + INSTR_TIME_SET_CURRENT(start); + /* vacuum */ if (!is_no_vacuum) { @@ -2842,6 +2860,12 @@ init(bool is_no_vacuum) executeStatement(con, "vacuum analyze pgbench_history"); } + INSTR_TIME_SET_CURRENT(diff); + INSTR_TIME_SUBTRACT(diff, start); + vaccum_sec = INSTR_TIME_GET_DOUBLE(diff); + + INSTR_TIME_SET_CURRENT(start); + /* * create indexes */ @@ -2878,6 +2902,14 @@ init(bool is_no_vacuum) } } + INSTR_TIME_SET_CURRENT(diff); + INSTR_TIME_SUBTRACT(diff, start); + index_sec = INSTR_TIME_GET_DOUBLE(diff); + + total_sec = insert_sec + commit_sec + vaccum_sec + index_sec; + + fprintf(stderr, "total time: %.2f s (insert %.2f s, commit %.2f s, vacuum %.2f s, index %.2f s)\n", + total_sec, insert_sec, commit_sec, vaccum_sec, index_sec); fprintf(stderr, "done.\n"); PQfinish(con); }