国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL-tpch 測試工具簡要手冊

2020-01-18 22:25:03
字體:
來源:轉載
供稿:網友

tpch是TPC(Transaction Processing Performance Council)組織提供的工具包。用于進行OLAP測試,以評估商業分析中決策支持系統(DSS)的性能。它包含了一整套面向商業的ad-hoc查詢和并發數據修改,強調測試的是數據庫、平臺和I/O性能,關注查詢能力。
官網:http://www.tpc.org/tpch
下載地址:http://www.tpc.org/tpch/spec/tpch_2_14_3.tgzhttp://www.tpc.org/tpch/spec/tpch_2_14_3.zip

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:  TPCH
DATABASE= MYSQL
MACHINE = LINUX
WORKLOAD = 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 50
TPC-H Population Generator (Version 2.9.0)
Copyright Transaction Processing Performance Council 1994 - 2008

real    192m43.897s
user    37m45.398s
sys     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 <= date '1998-12-01' - interval '106' day (3)
=>
l_shipdate <= date '1998-12-01' - interval '106' day

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

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

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

最后把大的查詢SQL腳本拆分成23個獨立的SQL查詢腳本,分別從tpch_01.sql ~ tpch_23.sql。

2、初始化庫表

tpch提供的數據庫表初始化腳本有些小問題,需要進行修改:
dss.ddl

主站蜘蛛池模板: 平乐县| 阜阳市| 盐山县| 三台县| 巩义市| 阜平县| 株洲市| 正镶白旗| 福泉市| 民乐县| 西贡区| 金寨县| 仙游县| 泽州县| 大荔县| 德保县| 乳山市| 古蔺县| 崇仁县| 军事| 扎赉特旗| 宾阳县| 兴安盟| 阜新市| 贡嘎县| 曲沃县| 瑞丽市| 商都县| 阿图什市| 嘉善县| 江城| 静乐县| 蚌埠市| 五河县| 阳曲县| 丹江口市| 前郭尔| 利辛县| 大埔县| 东乌珠穆沁旗| 巫山县|