Please help me clarify, if the pgbench tool can execute my own sql scenarios in parallel way? Googling and local searching brought no positive result.

I run the script that execeutes with no errors. But after execution I see no signs, that my script was actually performed. Does pgbench commits transaction with my sql script?

That's an output I get:

C:\Program Files\PostgreSQL\9.2\bin>pgbench.exe -n -h dbserverhost -U postgres -
T 10 -c 64 -j 8 bench_dbname -f c:\Dev\bench_script.sql

transaction type: TPC-B (sort of)
scaling factor: 1
query mode: simple
number of clients: 64
number of threads: 8
duration: 10 s
number of transactions actually processed: 1020
tps = 95.846561 (including connections establishing)
tps = 103.387127 (excluding connections establishing)

C:\Program Files\PostgreSQL\9.2\bin>

SQL script bench_script.sql is:

--comment here
begin;
  insert into schm.log values ( 'pgbench test', current_timestamp );
end;

SOLUTION

pgBench Windows version is sensitive to the order of the arguements passed to the utility: "bench_dbname" argument must be the last one parameter in a line.

This is the correct example of pgbench Windows version command line:

pgbench.exe -d -r -h 127.0.0.1 -U postgres -T 5 -f C:\Dev\bench_script.sql -c 64 -j 8 postgres

The most useful arguments for me were:

  • -T 60 (time in seconds to run script)
  • -t 100 (transaction amount per client)
  • -d print detailed debug info to the output
  • -r include in summary latency value calculated for every action of the script
  • -f run user defined sql script in benchmark mode
  • -c client amount
  • -j thread amount

pgBench official doc

PgBench, I love you! :)

Best wishes every

Edit
Report