首页 > 解决方案 > postgres 中的 pgbench 自定义数据模型

问题描述

我想对类似 tpc-c 的场景进行基准测试,但使用我的数据模型而不是 pgbench 创建的标准模型。我了解您可以使用 -f 参数运行自定义脚本。

如果我在数据库已经存在的情况下运行以下命令... pgbench -rf ./script.sql -c 4 -j 2 -T 60 -n dbName

我得到以下输出。

client 0 script 0 aborted in command 0 query 0: ERROR:  database "dbname" already exists
client 1 script 0 aborted in command 0 query 0: ERROR:  database "dbname" already exists
client 2 script 0 aborted in command 0 query 0: ERROR:  database "dbname" already exists
client 3 script 0 aborted in command 0 query 0: ERROR:  database "dbname" already exists
transaction type: ./script.sql
scaling factor: 1
query mode: simple
number of clients: 4
number of threads: 2
duration: 60 s
number of transactions actually processed: 0
Run was aborted; the above results are incomplete

如果我在数据库尚不存在的情况下运行相同的命令,则会得到以下输出。

connection to database "ngm2" failed:
FATAL:  database "ngm2" does not exist

这似乎有点愚蠢。

script.sql 包含以下内容

BEGIN;
insert into table1 (field1) values
('{"data1":0,"data2":"","data2":"data4"}');
END;

这是可能的还是我被锁定在 pgBench 使用的数据模型中?如果有另一个应用程序我可以使用我自己的数据模型在 postgres 中对类似 TPC-C 的场景进行基准测试,这也将是有用的信息。

标签: postgresqlbenchmarking

解决方案


推荐阅读