pgbench ツールが独自の SQL シナリオを並行して実行できるかどうかを明確にしてください。グーグルとローカル検索では、良い結果は得られませんでした。
エラーなしで実行されるスクリプトを実行します。しかし、実行後、スクリプトが実際に実行されたという兆候は見られません。pgbench は私の SQL スクリプトでトランザクションをコミットしますか?
それは私が得る出力です:
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スクリプトbench_script.sqlは次のとおりです。
--comment here
begin;
insert into schm.log values ( 'pgbench test', current_timestamp );
end;
解決
pgBench Windows バージョンは、ユーティリティに渡される引数の順序に敏感です。「bench_dbname」引数は、行の最後の 1 つのパラメーターでなければなりません。
これは、pgbench Windows バージョンのコマンド ラインの正しい例です。
pgbench.exe -d -r -h 127.0.0.1 -U postgres -T 5 -f C:\Dev\bench_script.sql -c 64 -j 8 postgres
私にとって最も有用な議論は次のとおりです。
- -T 60 (スクリプトを実行する秒数)
- -t 100 (クライアントあたりの取引金額)
- -d 詳細なデバッグ情報を出力に出力します
- -r スクリプトのすべてのアクションに対して計算されたレイテンシー値を要約に含めます
- -f ベンチマーク モードでユーザー定義の SQL スクリプトを実行します
- -c クライアントの金額
- -j 糸量
PgBench、愛してます!:)
皆様のご多幸をお祈り申し上げます ;)