博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL TPCH测试工具简要手册
阅读量:6929 次
发布时间:2019-06-27

本文共 2096 字,大约阅读时间需要 6 分钟。

tpch是TPC(Transaction Processing Performance Council)组织提供的工具包。用于进行OLAP测试,以评估商业分析中决策支持系统(DSS)的性能。它包含了一整套面向商业的ad-hoc查询和并发数据修改,强调测试的是数据库、平台和I/O性能,关注查询能力。
官网:
下载地址:

1、编译安装
下载源码包,解压缩,然后:

cp makefile.suite makefile

修改makefile文件中的CC、DATABASE、MACHINE、WORKLOAD等定义:

################## CHANGE NAME OF ANSI COMPILER HERE################CC      = gcc# Current values for DATABASE are: INFORMIX, DB2, ORACLE,#                                  SQLSERVER, SYBASE, TDAT (Teradata)# Current values for MACHINE are:  ATT, DOS, HP, IBM, ICL, MVS,#                                  SGI, SUN, U2200, VMS, LINUX, WIN32# Current values for WORKLOAD are:  TPCHDATABASE= MYSQLMACHINE = LINUXWORKLOAD = TPCH

修改tpcd.h文件,增加几行宏定义:

#ifdef MYSQL#define GEN_QUERY_PLAN ""#define START_TRAN "START TRANSACTION"#define END_TRAN "COMMIT"#define SET_OUTPUT ""#define SET_ROWCOUNT "limit %d;\n"#define SET_DBASE "use %s;\n"#endif

然后执行make编译,编译完毕后会生成两个可执行文件:
dbgen:数据生成工具。在使用InfiniDB官方测试脚本进行测试时,需要用该工具生成tpch相关表数据。
qgen:SQL生成工具
生成初始化测试数据:

#先把sql脚本模板拷贝到dbgen所在目录下[root@imysql tpch]# cp -f queries/*.sql ./[root@imysql tpch]# time ./dbgen -s 50TPC-H Population Generator (Version 2.9.0)Copyright Transaction Processing Performance Council 1994 - 2008real    192m43.897suser    37m45.398ssys     19m4.132s[root@imysql tpch]# ls -lh *tbl-rw-r--r-- 1 root root 1.2G Sep 21 15:23 customer.tbl-rw-r--r-- 1 root root 1.4G Sep 21 15:23 lineitem.tbl-rw-r--r-- 1 root root 2.2K Sep 21 15:23 nation.tbl-rw-r--r-- 1 root root 317M Sep 21 15:23 orders.tbl-rw-r--r-- 1 root root 504K Sep 21 15:23 partsupp.tbl-rw-r--r-- 1 root root 464K Sep 21 15:23 part.tbl-rw-r--r-- 1 root root  389 Sep 21 15:23 region.tbl-rw-r--r-- 1 root root  69M Sep 21 15:23 supplier.tbl

dbgen参数 -s 的作用是指定生成测试数据的仓库数,建议基准值设定在100以上,在我的测试环境中,一般都设定为1000。
由于源码包中自带的tpch初始化库表脚本并不能完全适用MySQL,需要修改部分代码。
先生成测试SQL脚本:

[root@imysql tpch]# ./qgen | sed -e 's/\r//' > queries/tpch_queries.sql

而后用vim打开tpch_queries.sql脚本,进行下面几次全局替换:

:%s/;\nlimit/ limit/g:%s/limit -1/limit 1/g

搜索所有类似下面的语句,去掉后面的 (3):

l_shipdate l_shipdate

本文转自叶金荣51CTO博客,原文链接:http://blog.51cto.com/imysql/1879756,如需转载请自行联系原作者

你可能感兴趣的文章
excel2003中如何给按钮指定宏?
查看>>
18种主流数据库:12种SQL+6种NoSQL
查看>>
修复ECSHOP优惠价格失效的BUG
查看>>
烂泥:Domino与AD集成测试文档(一)
查看>>
TurnipBit-MicroPython开发板:跟孩子一起DIY跳动的心
查看>>
Redis内存容量的预估和优化
查看>>
Guava库学习:函数编程(三)使用Supplier和Suppliers进行对象的包装构建
查看>>
centos7安装mongo3.0.7
查看>>
遍历-arrayList
查看>>
迷茫,才是青春应该有的样子
查看>>
25.cat,more,less,head,tail 查看文档命令
查看>>
Linux crontab定时执行任务 命令格式与详细例子
查看>>
jQuery.form插件
查看>>
junit初识(一)
查看>>
搭建***服务器之open***服务端配置(二)
查看>>
daemon not running. starting it now on port 5037 *
查看>>
我的友情链接
查看>>
The Custom Alert View Controller
查看>>
loadrunner几种不同超时的处理方法
查看>>
Zookeeper Curator 事件监听 - 秒懂
查看>>