benchmarksql测试mysql_数据库压力测试工具 -- BenchmarkSQL 使用说明
关于数据库的压力测试,之前写过3篇Blog:
数据库基准测试(Database Benchmarking) 说明
数据库压力测试工具 -- Hammerdb 使用说明
数据库压力测试工具 -- Swingbench 使用说明
今天看下BenchmarkSQL 工具的使用。
1BenchmarkSQL 说明
BenchmarkSQL 可以从sourceforge上直接下载:
对于BenchmarkSQL,官方的解释如下:
An easy to use JDBC benchmark that closely resembles the TPC-C standard for OLTP. DB's supported include PostgreSQL/EnterpriseDB, DB2, Oracle, SQLSvr, MySQL.
简单点说,就是一个通过JDBC 测试OLTP 的TPC-C。 支持PostgreSQL/EnterpriseDB, DB2, Oracle, SQLSvr, MySQL.
在安装文件中中,有一个HOW TO RUN的说明文档,里面描述了具体的使用方法:
Instructions for running
------------------------
Use of JDK7 is required. Sample JDBC Connection Property files are provided as follows:
props.pg : for PostgreSQL/EnterpriseDB
props.ora : for Oracle
0. As the user postgres, create the benchmarksql user with correct permissions.
postgres=# CREATE USER benchmarksql WITH SUPERUSER PASSWORD 'password';
postgres=# GRANT ALL PRIVILEGES ON DATABASE postgres TO benchmarksql;
1. Go to the 'run' directory, edit the appropriate "props.???"
file to point to the database instance you'd like to test.
2. Run the "sqlTableCreates" to create the base tables.
$ ./runSQL.sh props.pg sqlTableCreateshttps://www.cndba.cn/dave/article/115
3. Run the Loader command file to load all of the default data for a benchmark:
A.) Approximately half a million rows (per Warehouse) will be loaded across 9 tables.
$ ./runLoader.sh props.pg numWarehouses 1
NOTE: You should run the sqlTableTruncates scripts if your tables are not already empty.
B.) Alternatively, for PostgreSQL you may choose to generate the load data out to CSV files where it can be efficiently
bulk loaded into the database as many times as required by your testing.
$ ./runLoader.sh props.pg numWarehouses 1 fileLocation /tmp/csv/
These CSV files can be bulk loaded as follows:
$ ./runSQL.sh props.pg sqlTableCopies
You may truncate the data via:
$ ./runSQL.sh props.pg sqlTableTruncates
4. Run the "runSQL" command file to execute the SQL script "sqlIndexCreates" to create the primary keys & other indexes on the tables.https://www.cndba.cn/dave/article/115
$ ./runSQL.sh props.pg sqlIndexCreates
5. Run the "runBenchmark" command file to test the database. This command will create terminals and automatically start the transaction based on the parameters set in "props".
$ ./runBenchmark.sh props.pg
2BenchmarkSQL 使用示例
上节复制的how to run 文本内容有具体的使用方法,我们这里已Oracle 数据库为例,记录测试方法。https://www.cndba.cn/dave/article/115
2.1 安装BenchmarkSQL
下载后直接解压缩:
[root@cndba.cn ~]# unzip benchmarksql-4.1.0.zip
[root@cndba.cn benchmarksql-4.1.0]# pwd
/root/benchmarksql-4.1.0
[root@cndba.cn benchmarksql-4.1.0]# ls
build build.xml dist HOW-TO-RUN.txt lib README.txt run src
[root@cndba.cn benchmarksql-4.1.0]#
修改目录权限:
[root@cndba.cn ~]# chown -R oracle:oinstall benchmarksql-4.1.0
2.2 修改变量信息
进入run目录,修改数据库实例的信息:
[root@cndba.cn run]# pwd
/root/benchmarksql-4.1.0/run
[root@cndba.cn run]# ls
clean.sh log4j.xml props.pg runLoader.sh sqlIndexCreates sqlTableCopies sqlTableDrops
log props.ora runBenchmark.sh runSQL.sh sqlIndexDrops sqlTableCreates sqlTableTruncates
[root@cndba.cn run]#
我们测试的是Oracle 数据库,对应的文件是props.ora。 如果是postgresql,那么对应的文件是:props.pg。
创建测试用户benchmarksql:
SQL> create user benchmarksql identified by benchmarksql;
User created.
SQL> grant connect,resource,dba to benchmarksql;
Grant succeeded.
修改props.ora文件:
[oracle@cndba.cn run]$ cat props.ora
driver=oracle.jdbc.driver.OracleDriver
conn=jdbc:oracle:thin:@localhost:1521:cndba
user=benchmarksql
password=benchmarksql
warehouses=1
terminals=1
//To run specified transactions per terminal- runMins must equal zero
runTxnsPerTerminal=10
//To run for specified minutes- runTxnsPerTerminal must equal zero
runMins=0
//Number of total transactions per minute
limitTxnsPerMin=300
//The following five values must add up to 100
newOrderWeight=45
paymentWeight=43
orderStatusWeight=4
deliveryWeight=4
stockLevelWeight=4
2.3 创建基表
还在run命令下runSQL.sh 加sqlTableCreates选项来创建基表。
在运行之前,还需要先修改一下runSQL.sh 脚本,修改jar包类型,BenchmarkSQL 默认只有postgresql 的jar包。
[oracle@cndba.cn lib]$ pwd
/u01/app/oracle/product/11.1.0/db_1/jdbc/lib
[oracle@cndba.cn lib]$ ls
ojdbc6dms_g.jar ojdbc6_g.jar ojdbc7dms_g.jar ojdbc7_g.jar simplefan.jar
ojdbc6dms.jar ojdbc6.jar ojdbc7dms.jar ojdbc7.jar
把Oracle 目录下的jar包复制到BenchMarkSQL 的lib下。
[oracle@cndba.cn lib]$ cp ojdbc6.jar /u01/benchmarksql-4.1.0/lib/
[oracle@ cndba.cn lib]$
修改runSQL.sh:
https://www.cndba.cn/dave/article/115
[oracle@ cndba.cn run]$ cat runSQL.sh
myCP="../lib/ojdbc6.jar"
myCP="$myCP:../dist/BenchmarkSQL-4.1.jar"
myOPTS="-Dprop=$1"
myOPTS="$myOPTS -DcommandFile=$2"
java -cp .:$myCP $myOPTS ExecJDBC
[oracle@ cndba.cn run]$
最后执行创建脚本:
[oracle@cndba.cn run]$ ./runSQL.sh props.ora sqlTableCreates
DROP SCHEMA IF EXISTS benchmarksql CASCADE;
ORA-00950: invalid DROP option
CREATE SCHEMA benchmarksql;
ORA-02420: missing schema authorization clause
create table benchmarksql.warehouse (
w_id integer not null,
w_ytd decimal(12,2),
w_tax decimal(4,4),
w_name varchar(10),
w_street_1 varchar(20),
w_street_2 varchar(20),
w_city varchar(20),
w_state char(2),
w_zip char(9)
);
create table benchmarksql.district (
d_w_id integer not null,
d_id integer not null,
d_ytd decimal(12,2),
d_tax decimal(4,4),
d_next_o_id integer,
d_name varchar(10),
d_street_1 varchar(20),
d_street_2 varchar(20),
d_city varchar(20),
d_state char(2),
d_zip char(9)
);
create table benchmarksql.customer (
c_w_id integer not null,
c_d_id integer not null,
c_id integer not null,
c_discount decimal(4,4),
c_credit char(2),
c_last varchar(16),
c_first varchar(16),
c_credit_lim decimal(12,2),
c_balance decimal(12,2),
c_ytd_payment float,
c_payment_cnt integer,
c_delivery_cnt integer,
c_street_1 varchar(20),
c_street_2 varchar(20),
c_city varchar(20),
c_state char(2),
c_zip char(9),
c_phone char(16),
c_since timestamp,
c_middle char(2),
c_data varchar(500)
);
create sequence hist_id_seq;
create table benchmarksql.history (
hist_id integer not null default nextval('hist_id_seq') primary key,
h_c_id integer,
h_c_d_id integer,
h_c_w_id integer,
h_d_id integer,
h_w_id integer,
h_date timestamp,
h_amount decimal(6,2),
h_data varchar(24)
);
ORA-00907: missing right parenthesis
create table benchmarksql.oorder (
o_w_id integer not null,
o_d_id integer not null,
o_id integer not null,
o_c_id integer,
o_carrier_id integer,
o_ol_cnt decimal(2,0),
o_all_local decimal(1,0),
o_entry_d timestamp
);
create table benchmarksql.new_order (
no_w_id integer not null,
no_d_id integer not null,
no_o_id integer not null
);
create table benchmarksql.order_line (
ol_w_id integer not null,
ol_d_id integer not null,
ol_o_id integer not null,
ol_number integer not null,
ol_i_id integer not null,
ol_delivery_d timestamp,
ol_amount decimal(6,2),
ol_supply_w_id integer,
ol_quantity decimal(2,0),
ol_dist_info char(24)
);
create table benchmarksql.stock (
s_w_id integer not null,
s_i_id integer not null,
s_quantity decimal(4,0),
s_ytd decimal(8,2),
s_order_cnt integer,
s_remote_cnt integer,
s_data varchar(50),
s_dist_01 char(24),
s_dist_02 char(24),
s_dist_03 char(24),
s_dist_04 char(24),
s_dist_05 char(24),
s_dist_06 char(24),
s_dist_07 char(24),
s_dist_08 char(24),
s_dist_09 char(24),
s_dist_10 char(24)
);
create table benchmarksql.item (
i_id integer not null,
i_name varchar(24),
i_price decimal(5,2),
i_data varchar(50),
i_im_id integer
);
[oracle@cndba.cn run]$
SQL> select table_name from user_tables;
TABLE_NAME
------------------------------------------------------------
WAREHOUSE
DISTRICT
CUSTOMER
OORDER
NEW_ORDER
ORDER_LINE
STOCK
ITEM
8 rows selected.
上面的历史表出现错误:
create sequence hist_id_seq;
create table benchmarksql.history (
hist_id integer not null default nextval('hist_id_seq') primary key,
h_c_id integer,
h_c_d_id integer,
h_c_w_id integer,
h_d_id integer,
h_w_id integer,
h_date timestamp,
h_amount decimal(6,2),
h_data varchar(24)
);
ORA-00907: missing right parenthesis
这里可以看出来,这里的主键是一个自增的值。但是Oracle 12c之前,并不支持自增。 所以从这点上可以看出,BenchmarkSQL虽然支持Oracle,但更主要还是对Postgresql数据库的支持,对O的支持,并不友好。
https://www.cndba.cn/dave/article/115
2.4 加载默认数据
[oracle@cndba.cn run]$ cat runLoader.sh
java -cp .:../lib/ojdbc6.jar:../dist/BenchmarkSQL-4.1.jar -Dprop=$1 LoadData $2 $3 $4 $5
[oracle@cndba.cn run]$
[oracle@cndba.cn run]$ ./runLoader.sh props.ora numWarehouses 1
Starting BenchmarkSQL LoadData
----------------- Initialization -------------------
numWarehouses
1
driver=oracle.jdbc.driver.OracleDriver
conn=jdbc:oracle:thin:@localhost:1521:cndba
user=system
password=******
------------- LoadData StartTime = Mon Dec 21 17:45:40 CST 2015-------------
Start Whse Load for 1 Whses @ Mon Dec 21 17:45:40 CST 2015 ...
Elasped Time(ms): 0.046
End Whse Load @ Mon Dec 21 17:45:40 CST 2015
Start Item Load for 100000 Items @ Mon Dec 21 17:45:40 CST 2015 ...
Elasped Time(ms): 0.267 Writing record 10000 of 100000
Elasped Time(ms): 0.7 Writing record 20000 of 100000
Elasped Time(ms): 0.289 Writing record 30000 of 100000
Elasped Time(ms): 0.185 Writing record 40000 of 100000
Elasped Time(ms): 0.137 Writing record 50000 of 100000
Elasped Time(ms): 0.128 Writing record 60000 of 100000
Elasped Time(ms): 0.129 Writing record 70000 of 100000
Elasped Time(ms): 0.125 Writing record 80000 of 100000
Elasped Time(ms): 0.13 Writing record 90000 of 100000
Elasped Time(ms): 0.118 Writing record 100000 of 100000
Elasped Time(ms): 0.077 Writing final records 100000 of 100000
End Item Load @ Mon Dec 21 17:45:42 CST 2015
Start Stock Load for 100000 units @ Mon Dec 21 17:45:42 CST 2015 ...
Elasped Time(ms): 0.369 Writing record 10000 of 100000
Elasped Time(ms): 0.814 Writing record 20000 of 100000
Elasped Time(ms): 0.522 Writing record 30000 of 100000
Elasped Time(ms): 0.573 Writing record 40000 of 100000
Elasped Time(ms): 0.531 Writing record 50000 of 100000
Elasped Time(ms): 0.536 Writing record 60000 of 100000
Elasped Time(ms): 0.48 Writing record 70000 of 100000
Elasped Time(ms): 0.506 Writing record 80000 of 100000
Elasped Time(ms): 0.537 Writing record 90000 of 100000
Elasped Time(ms): 0.592 Writing record 100000 of 100000
Elasped Time(ms): 0.309 Writing final records 100000 of 100000
End Stock Load @ Mon Dec 21 17:45:48 CST 2015
Start District Data for 10 Dists @ Mon Dec 21 17:45:48 CST 2015 ...
Elasped Time(ms): 0.035 Writing record 10 of 10
End District Load @ Mon Dec 21 17:45:48 CST 2015
Start Cust-Hist Load for 60000 Cust-Hists @ Mon Dec 21 17:45:48 CST 2015 ...
Elasped Time(ms): 0.789 Writing record 10000 of 60000
ORA-00942: table or view does not exist
whse=1, dist=10, cust=3000
Start Order-Line-New Load for approx 340000 rows @ Mon Dec 21 17:45:49 CST 2015 ...
Elasped Time(ms): 0.917 Writing record 10000 of 340000
Elasped Time(ms): 0.156 Writing record 20000 of 340000
Elasped Time(ms): 0.139 Writing record 30000 of 340000
Elasped Time(ms): 0.169 Writing record 40000 of 340000
Elasped Time(ms): 0.14 Writing record 50000 of 340000
Elasped Time(ms): 0.171 Writing record 60000 of 340000
Elasped Time(ms): 0.091 Writing record 70000 of 340000
Elasped Time(ms): 0.098 Writing record 80000 of 340000
Elasped Time(ms): 0.089 Writing record 90000 of 340000
Elasped Time(ms): 0.082 Writing record 100000 of 340000
Elasped Time(ms): 0.094 Writing record 110000 of 340000
Elasped Time(ms): 0.145 Writing record 130000 of 340000
Elasped Time(ms): 0.147 Writing record 140000 of 340000
Elasped Time(ms): 0.092 Writing record 150000 of 340000
Elasped Time(ms): 0.127 Writing record 170000 of 340000
Elasped Time(ms): 0.13 Writing record 180000 of 340000
Elasped Time(ms): 0.101 Writing record 190000 of 340000
Elasped Time(ms): 0.085 Writing record 200000 of 340000
Elasped Time(ms): 0.101 Writing record 210000 of 340000
Elasped Time(ms): 0.111 Writing record 220000 of 340000
Elasped Time(ms): 0.131 Writing record 240000 of 340000
Elasped Time(ms): 0.183 Writing record 250000 of 340000
Elasped Time(ms): 0.083 Writing record 260000 of 340000
Elasped Time(ms): 0.158 Writing record 280000 of 340000
Elasped Time(ms): 0.18 Writing record 290000 of 340000
Elasped Time(ms): 0.093 Writing record 300000 of 340000
Elasped Time(ms): 0.097 Writing record 310000 of 340000
Elasped Time(ms): 0.098 Writing record 320000 of 340000
Elasped Time(ms): 0.102 Writing record 330000 of 340000
Writing final records 338073 of 340000
End Orders Load @ Mon Dec 21 17:45:53 CST 2015
------------- LoadJDBC Statistics --------------------
Start Time = Mon Dec 21 17:45:40 CST 2015
End Time = Mon Dec 21 17:45:53 CST 2015
Run Time = 13 Seconds
Rows Loaded = 548084 Rows
Rows Per Second = 42160 Rows/Sec
------------------------------------------------------
[oracle@cndba.cn run]$
2.5 创建索引
[oracle@cndba.cn run]$ ./runSQL.sh props.ora sqlIndexCreates
alter table benchmarksql.warehouse add constraint pk_warehouse
primary key (w_id);
alter table benchmarksql.district add constraint pk_district
primary key (d_w_id, d_id);
alter table benchmarksql.customer add constraint pk_customer
primary key (c_w_id, c_d_id, c_id);
create index ndx_customer_name
on benchmarksql.customer (c_w_id, c_d_id, c_last, c_first);
select setval('hist_id_seq', (select max(hist_id) + 1 from benchmarksql.history), false);
ORA-00923: FROM keyword not found where expected
alter table benchmarksql.oorder add constraint pk_oorder
primary key (o_w_id, o_d_id, o_id);
create unique index ndx_oorder_carrier
on benchmarksql.oorder (o_w_id, o_d_id, o_carrier_id, o_id);
alter table benchmarksql.new_order add constraint pk_new_order
primary key (no_w_id, no_d_id, no_o_id);
alter table benchmarksql.order_line add constraint pk_order_line
primary key (ol_w_id, ol_d_id, ol_o_id, ol_number);
alter table benchmarksql.stock add constraint pk_stock
primary key (s_w_id, s_i_id);
alter table benchmarksql.item add constraint pk_item
primary key (i_id);
vacuum analyze;
ORA-00900: invalid SQL statement
exec dbms_stats.gather_schema_stats('benchmarksql');
2.6 执行测试
修改runBenchmark.sh 脚本。
[oracle@cndba.cn run]$ cat runBenchmark.sh
java -cp .:../lib/ojdbc6.jar:../lib/log4j-1.2.17.jar:../lib/apache-log4j-extras-1.1.jar:../dist/BenchmarkSQL-4.1.jar -Dprop=$1 jTPCC
[oracle@cndba.cn run]$
[oracle@cndba.cn run]$ ./runBenchmark.sh props.ora
2015-12-21 17:50:55,318 INFO - Term-00,
2015-12-21 17:50:55,320 INFO - Term-00, +-------------------------------------------------------------+
2015-12-21 17:50:55,321 INFO - Term-00, BenchmarkSQL v4.1
2015-12-21 17:50:55,322 INFO - Term-00, +-------------------------------------------------------------+
2015-12-21 17:50:55,323 INFO - Term-00, (c) 2003, Raul Barbosa
2015-12-21 17:50:55,323 INFO - Term-00, (c) 2004-2014, Denis Lussier
2015-12-21 17:50:55,323 INFO - Term-00, +-------------------------------------------------------------+
2015-12-21 17:50:55,324 INFO - Term-00,
2015-12-21 17:50:55,325 INFO - Term-00, driver=oracle.jdbc.driver.OracleDriver
2015-12-21 17:50:55,326 INFO - Term-00, conn=jdbc:oracle:thin:@localhost:1521:cndba
2015-12-21 17:50:55,326 INFO - Term-00, user=system
2015-12-21 17:50:55,327 INFO - Term-00,
2015-12-21 17:50:55,328 INFO - Term-00, warehouses=1
2015-12-21 17:50:55,328 INFO - Term-00, terminals=1
2015-12-21 17:50:55,328 INFO - Term-00, runTxnsPerTerminal=10
2015-12-21 17:50:55,329 INFO - Term-00, limitTxnsPerMin=300
2015-12-21 17:50:55,329 INFO - Term-00,
2015-12-21 17:50:55,329 INFO - Term-00, newOrderWeight=45
2015-12-21 17:50:55,329 INFO - Term-00, paymentWeight=43
2015-12-21 17:50:55,330 INFO - Term-00, orderStatusWeight=4
2015-12-21 17:50:55,330 INFO - Term-00, deliveryWeight=4
2015-12-21 17:50:55,330 INFO - Term-00, stockLevelWeight=4
2015-12-21 17:50:55,330 INFO - Term-00, 2015-12-21 17:50:56,432 ERROR - payGetCust() not found! C_ID=680 C_D_ID=2 C_W_ID=1
2015-12-21 17:50:56,432 ERROR - Term-01, TERMINAL=Term-01 TYPE=PAYMENT COUNT=1
Term-01, TERMINAL=Term-01 TYPE=PAYMENT COUNT=1
2015-12-21 17:50:56,434 ERROR - java.sql.SQLException: Exhausted Resultset
at oracle.jdbc.driver.OracleResultSetImpl.getString(OracleResultSetImpl.java:1270)
at oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:498)
at jTPCCTerminal.paymentTransaction(Unknown Source)
at jTPCCTerminal.executeTransaction(Unknown Source)
at jTPCCTerminal.executeTransactions(Unknown Source)
at jTPCCTerminal.run(Unknown Source)
at java.lang.Thread.run(Thread.java:744)
2015-12-21 17:50:56,445 ERROR - payGetCust() not found! C_ID=1649 C_D_ID=10 C_W_ID=1
2015-12-21 17:50:56,445 ERROR - Term-01, TERMINAL=Term-01 TYPE=PAYMENT COUNT=2
Term-01, TERMINAL=Term-01 TYPE=PAYMENT COUNT=2
2015-12-21 17:50:56,446 ERROR - java.sql.SQLException: Exhausted Resultset
at oracle.jdbc.driver.OracleResultSetImpl.getString(OracleResultSetImpl.java:1270)
at oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:498)
at jTPCCTerminal.paymentTransaction(Unknown Source)
at jTPCCTerminal.executeTransaction(Unknown Source)
at jTPCCTerminal.executeTransactions(Unknown Source)
at jTPCCTerminal.run(Unknown Source)
at java.lang.Thread.run(Thread.java:744)
2015-12-21 17:50:56,641 ERROR - payGetCust() not found! C_ID=1005 C_D_ID=7 C_W_ID=1
2015-12-21 17:50:56,641 ERROR - Term-01, TERMINAL=Term-01 TYPE=PAYMENT COUNT=3
Term-01, TERMINAL=Term-01 TYPE=PAYMENT COUNT=3
2015-12-21 17:50:56,642 ERROR - java.sql.SQLException: Exhausted Resultset
at oracle.jdbc.driver.OracleResultSetImpl.getString(OracleResultSetImpl.java:1270)
at oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:498)
at jTPCCTerminal.paymentTransaction(Unknown Source)
at jTPCCTerminal.executeTransaction(Unknown Source)
at jTPCCTerminal.executeTransactions(Unknown Source)
at jTPCCTerminal.run(Unknown Source)
at java.lang.Thread.run(Thread.java:744)
2015-12-21 17:50:56,847 ERROR - payGetCust() not found! C_ID=167 C_D_ID=1 C_W_ID=1
2015-12-21 17:50:56,848 ERROR - Term-01, TERMINAL=Term-01 TYPE=PAYMENT COUNT=4
Term-01, TERMINAL=Term-01 TYPE=PAYMENT COUNT=4
2015-12-21 17:50:56,850 ERROR - java.sql.SQLException: Exhausted Resultset
at oracle.jdbc.driver.OracleResultSetImpl.getString(OracleResultSetImpl.java:1270)
at oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:498)
at jTPCCTerminal.paymentTransaction(Unknown Source)
at jTPCCTerminal.executeTransaction(Unknown Source)
at jTPCCTerminal.executeTransactions(Unknown Source)
at jTPCCTerminal.run(Unknown Source)
at java.lang.Thread.run(Thread.java:744)
2015-12-21 17:50:57,058 ERROR - stmtGetCustWhse() not found! W_ID=1 C_D_ID=3 C_ID=1534
2015-12-21 17:50:57,059 ERROR - --- Unexpected SQLException caught in NEW-ORDER Txn ---
2015-12-21 17:50:57,059 ERROR - Exhausted Resultset 2015-12-21 17:50:57,662 ERROR - payGetCust() not found! C_ID=1772 C_D_ID=2 C_W_ID=1 8MB / 58MBB
2015-12-21 17:50:57,662 ERROR - Term-01, TERMINAL=Term-01 TYPE=PAYMENT COUNT=7
Term-01, TERMINAL=Term-01 TYPE=PAYMENT COUNT=7
2015-12-21 17:50:57,662 ERROR - java.sql.SQLException: Exhausted Resultset
at oracle.jdbc.driver.OracleResultSetImpl.getString(OracleResultSetImpl.java:1270)
at oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:498)
at jTPCCTerminal.paymentTransaction(Unknown Source)
at jTPCCTerminal.executeTransaction(Unknown Source)
at jTPCCTerminal.executeTransactions(Unknown Source)
at jTPCCTerminal.run(Unknown Source)
at java.lang.Thread.run(Thread.java:744)
2015-12-21 17:50:57,866 ERROR - payGetCust() not found! C_ID=540 C_D_ID=10 C_W_ID=1 8MB / 58MB
2015-12-21 17:50:57,866 ERROR - Term-01, TERMINAL=Term-01 TYPE=PAYMENT COUNT=8
Term-01, TERMINAL=Term-01 TYPE=PAYMENT COUNT=8
2015-12-21 17:50:57,867 ERROR - java.sql.SQLException: Exhausted Resultset
at oracle.jdbc.driver.OracleResultSetImpl.getString(OracleResultSetImpl.java:1270)
at oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:498)
at jTPCCTerminal.paymentTransaction(Unknown Source)
at jTPCCTerminal.executeTransaction(Unknown Source)
at jTPCCTerminal.executeTransactions(Unknown Source)
at jTPCCTerminal.run(Unknown Source)
at java.lang.Thread.run(Thread.java:744)
2015-12-21 17:50:58,078 ERROR - payGetCust() not found! C_ID=1785 C_D_ID=3 C_W_ID=1 8MB / 58MB
2015-12-21 17:50:58,079 ERROR - Term-01, TERMINAL=Term-01 TYPE=PAYMENT COUNT=9
Term-01, TERMINAL=Term-01 TYPE=PAYMENT COUNT=9
2015-12-21 17:50:58,079 ERROR - java.sql.SQLException: Exhausted Resultset
at oracle.jdbc.driver.OracleResultSetImpl.getString(OracleResultSetImpl.java:1270)
at oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:498)
at jTPCCTerminal.paymentTransaction(Unknown Source)
at jTPCCTerminal.executeTransaction(Unknown Source)
at jTPCCTerminal.executeTransactions(Unknown Source)
at jTPCCTerminal.run(Unknown Source)
at java.lang.Thread.run(Thread.java:744)
2015-12-21 17:50:58,284 ERROR - stmtGetCustWhse() not found! W_ID=1 C_D_ID=9 C_ID=2746B / 58MB
2015-12-21 17:50:58,285 ERROR - --- Unexpected SQLException caught in NEW-ORDER Txn ---
2015-12-21 17:50:58,285 ERROR - Exhausted Resultset 2015-12-21 17:50:58,686 INFO - Term-00, Current tpmTOTAL: 12 Memory Usage: 8MB / 58MB
2015-12-21 17:50:58,686 INFO - Term-00,
2015-12-21 17:50:58,686 INFO - Term-00, Measured tpmC (NewOrders) = 48.64
2015-12-21 17:50:58,687 INFO - Term-00, Measured tpmTOTAL = 267.53
2015-12-21 17:50:58,687 INFO - Term-00, Session Start = 2015-12-21 17:50:56
2015-12-21 17:50:58,687 INFO - Term-00, Session End = 2015-12-21 17:50:58
2015-12-21 17:50:58,687 INFO - Term-00, Transaction Count = 10
[oracle@cndba.cn run]$
3结论
我们在上节的测试中,基本上每个脚本都修改了。 但最终还是没成功。 从配置上来看,BenchmarkSQL 是为测试Postgresql 数据库准备的,如果是测试pg,基本上代码都不需要修改。 https://www.cndba.cn/dave/article/115
另外,在开头也说过,BenchmarkSQL 是支持ORACLE 数据库的,但通过实验,可以看出,其对象的创建语法并不是按照Oracle 的语法来的。
基于BenchmarkSQL 对Oracle 的不友好,还是放弃使用BenchmarkSQL,可以使用HammerDB 或者 Swingbench来测试Oracle。
测试虽然没有成功,但我们是完整的把测试流程梳理了一遍,如果测试PG,直接参考这个流程测试即可。
版权声明:本文为博主原创文章,未经博主允许不得转载。
benchmarksql测试mysql_数据库压力测试工具 -- BenchmarkSQL 使用说明相关推荐
- sysbench-系统、数据库压力测试工具
sysbench是一款简单易用的压力测试工具,可以测试cpu,memory,fileio,mysql数据库; sysbench安装方法: 默认的epel源中的sysbench是0.4版本的,现在已经到 ...
- Jmeter 数据库压力测试
一.jmeter本地数据库压力测试 1.将JMeterPlugins-Extras.jar和JMeterPlugins-Standard.jar放到apache-jmeter-3.0\lib\ext目 ...
- jmeter并发测试教程_JMeter压力测试并发测试(入门篇)
jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单.因为jmeter是java开发的,所以运行的时候必须先要安 ...
- html开发的移动端怎么做压力测试,移动端压力测试
移动端压力测试 移动端压力测试 一.monkey APP性能测试 (adb shell monkey 1000 adb logcat | gerp START获取包名和activity名 adb sh ...
- 什么是压力测试,在哪里做压力测试,软件压力测试存在哪些问题?
软件压力测试是一种基本的质量保证行为,它是每个重要软件测试工作的一部分.软件压力测试的基本思路很简单: 不是在常规条件下运行手动或自动测试,而是在计算机数量较少或系统资源匮乏的条件下运行测试. 通常要 ...
- 10分钟学会数据库压力测试
01 前言 很多人提到jmeter时,只会说到jmeter进行接口自动化或接口性能测试,其实jmeter还能对数据库进行自动化操作. 个人常用的场景有以下: 对自动化产生的数据,进行删除 不断修改数据 ...
- 十大网站压力测试软件 - WEB压力测试工具介绍
下面是十个免费的可以用来进行Web的负载/压力测试的工具,这样,你就可以知道你的服务器以及你的WEB应用能够顶得住多少的并发量,以及你的网站的性能.我相信,北京奥组委的订票网站的开发团队并不知道有这样 ...
- ab压力测试_CentOS安装压力测试工具ApacheBench(ab)
官方文档: https://httpd.apache.org/docs/2.4/programs/ab.html ab原理: ab命令会创建很多的并发访问线程,模拟多个访问者同时对某一URL地址进行访 ...
- linux 显卡 压力测试软件,显卡压力测试工具 GpuTest
GpuTest是一个用户界面友好的应用软件,允许用户对显卡GPU进行OpenGL基准压力测试. 测试项目包括了一些我们熟知的方案,如: FurMark压力测试(OpenGL 2.1 or 3.2). ...
最新文章
- HarmonyOS 使用DevEcoStudio创建一个xml布局以及引用布局
- HP存储raid5两块硬盘离线lvm下vxfs文件系统恢复数据过程
- 输出9*9口诀python-Python输出9*9乘法表的方法
- Direct2D (25) : 将画笔线条所占用的区域转换为路径 - ID2D1Geometry.Widen()
- 做小程序费用太高?帮你选一个最省钱的方案
- Azkaban实战,Command类型单一job示例,任务中执行外部shell脚本,Command类型多job工作flow,HDFS操作任务,MapReduce任务,HIVE任务
- 搭建项目前端页面环境
- PAT_B_1004_Java(20分)
- css居中无效的解决办法
- 聊聊全站HTTPS带来的技术挑战
- SpringBoot2.0 基础案例(12):基于转账案例,演示事务管理操作
- Docker运行tensorflow试试
- gradle 编译java配置文件_Andriod(三):配置文件build.gradle与AndroidManifest.xml
- 六步搞定RHEL5下的mysql镜像数据库配置
- Axure-----三级下拉菜单的具体实现过程
- linux内存管理实验,Linux内存管理机制研究
- Verilog入门2-用ise做38译码器和仿真
- android支付宝运动修改器,一键修改支付宝运动步数-修改支付宝运动步数工具下载不要root手机版-西西软件下载...
- 计算机更改为英语,win7如何修改语言 电脑语言改成英文的方法
- 项目中 前后台接口 请求项目移植的问题
热门文章
- 在线作图丨数据降维方法⑥——消除趋势对应分析(Detrended correspondence analysis, DCA)
- PICRUSt2分析实战:16S扩增子OTU或ASV预测宏基因组EC、通路、KO(200806更新)
- Linux下取代top的进程管理工具 htop
- CNS接连发文背书,原来生姜这么神奇
- Nature:拟南芥微生物组功能研究0概述
- R语言可视化散点图、气泡图、动态气泡图、数据点重合的散点图、数据点计数图、抖动数据点图、基于lm方法或者loess方法拟合数据点之间的趋势关系曲线、自定义数据点的大小、色彩、添加主标题、副标题、题注
- seaborn可视化绘制双变量分组条形图(Customizing Annotation of Bars: Side-by-side)、添加数值标签进行标记、并自定义条形图数值标签的格式
- R语言vtreat包自动处理dataframe的缺失值、计算数据列的均值和方差并基于均值和方差信息对数据列进行标准化缩放、计算所有数据列的均值和方差对所有数据列进行标准化缩放
- R语言ggplot2可视化使用ggsave将可视化图像结果保存为SVG文件实战
- Error in ** : incorrect number of dimensions