参考链接:https://blog.csdn.net/fuqiangnxn/article/details/98758707
https://www.jianshu.com/p/622545cb1341
要求:安装jdk7及以上版本
安装apache-ant(在官网上下载apache-ant-xxx.bin.zip,解压,然后将bin目录添加进环境变量PATH中)
1.在官网上下载benchmarksql 5.0
2.解压,修改源码,使其支持达梦数据库
修改benchmarksql-5.0/src/client下的jTPCC.java,增加dm相关部分
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("dm"))
dbType = DB_UNKNOWN;
else
{
log.error("unknown database type '" + iDB + "'");
return;
}
3. 创建数据库实例,并在其中创建BENCHMARK用户,授予DBA权限
4. 使用ant编译源码。直接进加压后的benchmarksql目录下,执行ant即可
5. 在run目录下根据其它数据库的props文件创建达梦的props.dm
//前面一部分修改如下,后面的暂时没改
db=dm
driver=dm.jdbc.driver.DmDriver
conn=jdbc:dm://localhost:5236
user=BENCHMARK
password=BENCHMARK
6. 修改benchmarksql-5.0/run下的funcs.sh,添加dm数据库类型
在benchmarksql-5.0/lib目录下创建一个dm目录,将对应的jdbc驱动拷贝至该目录下,然后修改funcs.sh文件
function setCP()
{
case "$(getProp db)" in
firebird)
cp="../lib/firebird/*:../lib/*"
;;
oracle)
cp="../lib/oracle/*"
if [ ! -z "${ORACLE_HOME}" -a -d ${ORACLE_HOME}/lib ] ; then
cp="${cp}:${ORACLE_HOME}/lib/*"
fi
cp="${cp}:../lib/*"
;;
postgres)
cp="../lib/postgres/*:../lib/*"
;;
dm)
cp="../lib/dm/*:../lib/*"
;;
esac
myCP=".:${cp}:../dist/*"
export myCP
case "$(getProp db)" in
firebird|oracle|postgres|dm)
;;
"") echo "ERROR: missing db= config option in ${PROPS}" >&2
exit 1
;;
*) echo "ERROR: unsupported database type 'db=$(getProp db)' in ${PROPS}" >&2
exit 1
;;
esac
7. 修改benchmarksql-5.0/run/runDatabaseBuild.sh,去掉AFTER_LOAD中的extraHistID
8. 构建测试环境,在benchmarksql-5.0/run目录下执行
./runDatabaseBuild.sh props.dm
9. 开始测试TPC-C,在benchmarksql-5.0/run目录下执行
./runBenchmark.sh props.dm
在测试之前,可以修改props.dm中的runTxnsPerTerminal=0,runMins=20
测试完成后会在benchmarksql-5.0/run目录下生成一个my_result_+日期的文件夹
10. 生成结果报告,在benchmarksql-5.0/run目录下执行
./generateReport.sh my_result_2020-04-02_030832
注意:执行这个命令之前需要先安装R语言。
yum -y install R
这篇文章只是单纯的让benchmarksql5.0能够在达梦数据库上测试TPC-C,关于提升性能方面的一些配置,如修改ini参数、创建适合达梦的索引、修改建表语句以提升性能等均不涉及。