xac*_*nay 8 sql postgresql benchmarking multithreading
请帮我澄清一下,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”参数必须是一行中的最后一个参数。
这是 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
对我来说最有用的论点是:
PGBench,我爱你!:)
最良好的祝愿大家;)
“事务类型:TPC-B(某种程度)”意味着它没有处理 -f 选项来运行自定义 SQL 脚本,而是运行默认查询。
在 Windows 版本上,一旦 getopt 到达第一个不以连字符开头的选项(即“bench_dbname”),它似乎就会停止解析选项。因此,请确保 -f 出现在此之前。
| 归档时间: | 
 | 
| 查看次数: | 10475 次 | 
| 最近记录: |