位置: 编程技术 - 正文

MySQL-tpch 测试工具简要手册

编辑:rootadmin

推荐整理分享MySQL-tpch 测试工具简要手册,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

tpch是TPC(Transaction Processing Performance Council)组织提供的工具包。用于进行OLAP测试,以评估商业分析中决策支持系统(DSS)的性能。它包含了一整套面向商业的ad-hoc查询和并发数据修改,强调测试的是数据库、平台和I/O性能,关注查询能力。官网: 或 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, U, VMS, LINUX, WIN# 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生成工具生成初始化测试数据:[root@imysql tpch]# time ./dbgen -s TPC-H Population Generator (Version 2.9.0)Copyright Transaction Processing Performance Council -

real m.suser m.ssys m4.s

[root@imysql tpch]# ls -lh *tbl-rw-r--r-- 1 root root 1.2G Sep : customer.tbl-rw-r--r-- 1 root root 1.4G Sep : lineitem.tbl-rw-r--r-- 1 root root 2.2K Sep : nation.tbl-rw-r--r-- 1 root root M Sep : orders.tbl-rw-r--r-- 1 root root K Sep : partsupp.tbl-rw-r--r-- 1 root root K Sep : part.tbl-rw-r--r-- 1 root root Sep : region.tbl-rw-r--r-- 1 root root M Sep : supplier.tbldbgen参数 -s 的作用是指定生成测试数据的仓库数,建议基准值设定在以上,在我的测试环境中,一般都设定为。由于源码包中自带的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 <= date '--' - interval '' day (3)=>l_shipdate <= date '--' - interval '' day

再修改第行附近:count(o_orderkey)=>count(o_orderkey) as c_count

修改第行左右) as c_orders (c_custkey, c_count)=>) as c_orders

修改第行附近:drop view revenue0 limit 1;=>drop view revenue0;

最后把大的查询SQL脚本拆分成个独立的SQL查询脚本,分别从tpch_.sql ~ tpch_.sql。

2、初始化库表

tpch提供的数据库表初始化脚本有些小问题,需要进行修改:dss.ddl ? DSS库初始化DDL脚本dss.ri ? DSS数据表创建索引、外键脚本dss.ddl脚本需要增加几行:drop database tpch;create database tpch;use tpch;

MySQL-tpch 测试工具简要手册

dss.ri脚本需要修改几个地方:修改第4行左右:CONNECT TO TPCD;=>Use tpch;

修改第6~行,所有的SQL注释符 “--” 后面再加一个空格:-- ALTER TABLE TPCD.REGION DROP PRIMARY KEY; -- ALTER TABLE TPCD.NATION DROP PRIMARY KEY; -- ALTER TABLE TPCD.PART DROP PRIMARY KEY; -- ALTER TABLE TPCD.SUPPLIER DROP PRIMARY KEY; -- ALTER TABLE TPCD.PARTSUPP DROP PRIMARY KEY; -- ALTER TABLE TPCD.ORDERS DROP PRIMARY KEY; -- ALTER TABLE TPCD.LINEITEM DROP PRIMARY KEY; -- ALTER TABLE TPCD.CUSTOMER DROP PRIMARY KEY;

修改第行:ADD FOREIGN KEY NATION_FK1 (N_REGIONKEY) references TPCD.REGION;=>ADD FOREIGN KEY NATION_FK1 (N_REGIONKEY) references TPCD.REGION(R_REGIONKEY);

修改第行:ADD FOREIGN KEY SUPPLIER_FK1 (S_NATIONKEY) references TPCD.NATION;=>ADD FOREIGN KEY SUPPLIER_FK1 (S_NATIONKEY) references TPCD.NATION(N_NATIONKEY);

修改第行:ADD FOREIGN KEY CUSTOMER_FK1 (C_NATIONKEY) references TPCD.NATION; =>ADD FOREIGN KEY CUSTOMER_FK1 (C_NATIONKEY) references TPCD.NATION(N_NATIONKEY);

修改第行:ADD FOREIGN KEY PARTSUPP_FK1 (PS_SUPPKEY) references TPCD.SUPPLIER; =>ADD FOREIGN KEY PARTSUPP_FK1 (PS_SUPPKEY) references TPCD.SUPPLIER(S_SUPPKEY);

修改第行:ADD FOREIGN KEY PARTSUPP_FK2 (PS_PARTKEY) references TPCD.PART;=>ADD FOREIGN KEY PARTSUPP_FK2 (PS_PARTKEY) references TPCD.PART(P_PARTKEY);

修改第行:ADD FOREIGN KEY ORDERS_FK1 (O_CUSTKEY) references TPCD.CUSTOMER;=>ADD FOREIGN KEY ORDERS_FK1 (O_CUSTKEY) references TPCD.CUSTOMER(C_CUSTKEY);

修改第行:ADD FOREIGN KEY LINEITEM_FK1 (L_ORDERKEY) references TPCD.ORDERS;=>ADD FOREIGN KEY LINEITEM_FK1 (L_ORDERKEY) references TPCD.ORDERS(O_ORDERKEY);

修改第行:TPCD.PARTSUPP;=>TPCD.PARTSUPP(PS_PARTKEY,PS_SUPPKEY);

另外,由于tpch生成的表名是大写的,需要修改下表名成小写的,因此再增加几行:use tpch;

alter table CUSTOMER rename to customer ;alter table LINEITEM rename to lineitem ;alter table NATION rename to nation ;alter table ORDERS rename to orders ;alter table PART rename to part ;alter table PARTSUPP rename to partsupp ;alter table REGION rename to region ;alter table SUPPLIER rename to supplier ;

3、导入数据测试数据生成了,测试库表也初始化完了,接下来就可以开始导入数据了。需要注意下,如果开启了binlog,在导入前最好先关闭binlog,否则会提示超出max_binlog_cache_size的错误提示,如果不能关闭binlog,则需要把导入文件切分成多个小文件再导入。myqsl -e "LOAD DATA INFILE 'path/dbgen/customer.tbl' INTO TABLE CUSTOMER FIELDS TERMINATED BY '|';"myqsl -e "LOAD DATA INFILE 'path/dbgen/orders.tbl' INTO TABLE ORDERS FIELDS TERMINATED BY '|';"myqsl -e "LOAD DATA INFILE 'path/dbgen/lineitem.tbl' INTO TABLE LINEITEM FIELDS TERMINATED BY '|';"myqsl -e "LOAD DATA INFILE 'path/dbgen/nation.tbl' INTO TABLE NATION FIELDS TERMINATED BY '|';"myqsl -e "LOAD DATA INFILE 'path/dbgen/partsupp.tbl' INTO TABLE PARTSUPP FIELDS TERMINATED BY '|';"myqsl -e "LOAD DATA INFILE 'path/dbgen/part.tbl' INTO TABLE PART FIELDS TERMINATED BY '|';"myqsl -e "LOAD DATA INFILE 'path/dbgen/region.tbl' INTO TABLE REGION FIELDS TERMINATED BY '|';"myqsl -e "LOAD DATA INFILE 'path/dbgen/supplier.tbl' INTO TABLE SUPPLIER FIELDS TERMINATED BY '|';"

4、执行tpch测试接下来就可以进行tpch测试了,逐个执行个查询SQL脚本即可,每次执行前都要重启下MySQL实例,确保每次的内存缓冲区都是干净的。简单循环测试脚本如下:

附件:tpch初始化、自动化测试脚本压缩包与word手册。

MySQL字符编码设置方法 通过showvariableslike'character_set%%';查看编码修改mysql的编码方式可以有以下几个:1.通过配置文件修改my.ini(windows下)或/etc/my.cnf(linux下)分别添加如下内容[mysq

MySql二进制连接方式详解 使用mysql二进制方式连接您可以使用MySQL二进制方式进入到mysql命令提示符下来连接MySQL数据库。实例以下是从命令行中连接mysql服务器的简单实例:[root@h

mysql tmp_table_size优化之设置多大合适 通过设置tmp_table_size选项来增加一张临时表的大小,例如做高级GROUPBY操作生成的临时表。如果调高该值,MySQL同时将增加heap表的大小,可达到提高联接

标签: MySQL-tpch 测试工具简要手册

本文链接地址:https://www.jiuchutong.com/biancheng/347537.html 转载请保留说明!

上一篇:mysql同步问题之Slave延迟很大优化方法

下一篇:MySQL字符编码设置方法(mysql8.0设置字符集编码)

  • 印花税进什么费用
  • 增值税一般纳税人和小规模纳税人的区别
  • 股票价值和内部价值
  • 库存商品在贷方怎么调整
  • 纳税调整增加额和递延所得税资产
  • 暂估工资成本
  • 认证发票密文有误不能抵扣如何处理?
  • 预收物业费是否必须开具发票
  • 普票名称错了税号没错
  • 个人可以开技术服务费发票税率多少
  • 退休职工的医疗保险怎么发放
  • 房地产经常发生的法律问题
  • 自然灾害造成的存货净损失计入什么科目
  • 两公司之间内部转账的会计处理
  • 出口企业收到的货款是人民币还是美元
  • 月末利润分配的账务处理
  • 合伙企业收到投资款要缴纳印花税吗
  • 租赁费摊销计入什么科目
  • 会计报表申报期限怎么填
  • 销售产品库存商品怎么减
  • vue编写网页
  • 开出转账支票补付款项
  • 固定资产投资账务处理
  • 逾期包装物押金收入计入什么科目
  • 前端几种下载文件
  • 长期股权投资的账面价值怎么计算
  • 如何设置长期有效的群二维码安卓手机
  • 固定资产减少的账务处理
  • Web前端开发用什么软件
  • 在Win2003(64位)中配置IIS6+PHP5.2.17+MySQL5.5的运行环境
  • 《ai人工智能》
  • 金税盘锁死状态
  • ajax跨域请求的原理是什么
  • php封装数据库操作
  • 写一个简单的php程序代码
  • 生活服务业纳税义务发生时间
  • 金税盘怎样设置收款人复核人
  • 企业生产过程中执行标准要把握好以下原则
  • 长期股权投资的交易费用计入哪里
  • 季度所得税资产总额填错了,会不会有影响
  • 休产假的工资扣个人所得税吗
  • 关于发票的相关法律
  • 企业增值税申报流程
  • 帮员工购买意外险怎么记到分录
  • 损益类账户怎么记入总账
  • 困难企业社保费返还
  • 材料暂估入库的账务处理
  • 公司盈利的钱怎么拿出来
  • 借调人员费用列支
  • 一次性工伤医疗补助金怎么领取
  • 车辆报废取得的收入增值税怎么算
  • 企业分红给个人的税收
  • 美国支票上的收款人地址不对怎么办
  • SQL Server ltrim(rtrim()) 去不掉空格的原因分析
  • unix系统采用什么结构
  • 如何解决win10系统安装不兼容驱动的问题
  • win10 server2008
  • bios屏蔽nvme
  • 重装系统清空
  • windows10iot安装
  • vim的配置文件
  • 怎么才能给电脑提速
  • win10 win8.1双系统
  • excel 工具栏
  • 如何在linux安装软件
  • android 自定义drawable
  • javascript prototype inheritence
  • javascript有哪些常用的属性和方法
  • js创建元素
  • 安卓开发过程中的问题
  • python中deque
  • jquery 点击按钮
  • jquery日期选择器
  • 安卓获取图片路径
  • 党员参观红色教育基地活动的意义
  • 各国进口汽车综合税率表
  • 个体工商户将自有车辆出租取得的收入怎么征税
  • 北京地方税务局李宗定
  • 怎么删除天眼查信息
  • 行政事业单位自办食堂规定
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设