摘要
本文介绍使用BenchMarkSQL 5.0测试GBase 8s数据库的方法。
测试环境
测试机
172.16.17.127 : CentOS 7.3 (64 Bit)
数据库
GBase 8s V8.8
使用说明
本说明手册是在CentOS 7.3 (64 Bit),jdk-1.8环境下编译过的,如果直接使用该文件进行测试,请直接跳到“使用benchmarksql5.0进行测试”。
软件下载与安装
安装benchmarkSQL5.0
下载地址:https://sourceforge.net/projects/benchmarksql/
安装:直接解压,假设解压路径 /data/benchmarksql-5.0
安装jdk1.8
yum install jdk-7u79-linux-x64.rpm
安装Apache ant
用于编译benchmarkSQL, 5.0版本是需要编译的。如果不需要将测试结果图形化输出,ant不装也可以,并不影响测试,毕竟ant安装依赖包过多,安装比较复杂。
yum install ant
安装:直接解压apache-ant-1.9.1-bin.tar.gz包即可。编译benchmarksql时在环境变量PATH中添加上解压包的bin路径即可。
增加GBase数据库支持
由于benchmarksql5.0不支持gbase,所以需要在benchmarksql的lib目录下创建gbase目录,并将ifxjdbc.jar包放入该目录。
然后修改benchmarksql5.0源码,增加对gbase的支持。
修改funcs.sh脚本
vim run/funcs.sh
…
function setCP()
{
…
postgres)
cp="…/lib/postgres/:…/lib/"
;;
gbase)
cp="…/lib/gbase/:…/lib/"
;;
…
}
…
case “$(getProp db)” in
firebird|oracle|postgres|gbase)
…
修改jTPCC.java
$ vim src/client/jTPCC.java
…
if (iDB.equals(“firebird”))
dbType = DB_FIREBIRD;
else if (iDB.equals(“oracle”))
dbType = DB_ORACLE;
else if (iDB.equals(“postgres”))
dbType = DB_POSTGRES;
else if (iDB.equals(“gbase”))
dbType = DB_UNKNOWN;
else
{
log.error(“unknown database type '” + iDB + “’”);
return;
}
修改jTPCCConnection.java
$ vim src/client/jTPCCConnection.java
…
// PreparedStatements for STOCK_LEVEL
switch (dbType)
{
case jTPCCConfig.DB_POSTGRES:
case jTPCCConfig.DB_UNKNOWN:
stmtStockLevelSelectLow = dbConn.prepareStatement(
“SELECT count(*) AS low_stock FROM (” +
" SELECT s_w_id, s_i_id, s_quantity " +
" FROM bmsql_stock " +
" WHERE s_w_id = ? AND s_quantity < ? AND s_i_id IN (" +
" SELECT ol_i_id