db2 tpch数据库测试环境搭建
-
zchbaby2000
2016-12-26 19:33:22
-
数据库开发技术
-
原创
在http://www.tpc.org/tpch/上下载tpc-h-tool.zip,sftp到一个Linux 环境下/home/chzhao/Desktop/,解压缩文件 unzip tpc-h-tool.zip
Path: /home/chzhao/Desktop/tpch_2_17_0/dbgen
Change makefile.suite and save this file to be makefile
################
## CHANGE NAME OF ANSI COMPILER HERE
################
CC = gcc
# Current values for DATABASE are: INFORMIX, DB2, TDAT (Teradata)
# SQLSERVER, SYBASE, ORACLE, VECTORWISE
# Current values for MACHINE are: ATT, DOS, HP, IBM, ICL, MVS,
# SGI, SUN, U2200, VMS, LINUX, WIN32
# Current values for WORKLOAD are: TPCH
DATABASE=DB2
MACHINE =LINUX
WORKLOAD =TPCH
make
#生成5GB的数据
[chzhao@localhost dbgen]$ ./dbgen -s 5
TPC-H Population Generator (Version 2.17.0)
Copyright Transaction Processing Performance Council 1994 - 2010
[chzhao@localhost dbgen]$ ls -alt *.tbl
-rw-rw-r--. 1 chzhao chzhao 122131132 Dec 26 03:06 customer.tbl
-rw-rw-r--. 1 chzhao chzhao 3863181353 Dec 26 03:06 lineitem.tbl
-rw-rw-r--. 1 chzhao chzhao 2224 Dec 26 03:06 nation.tbl
-rw-rw-r--. 1 chzhao chzhao 870187306 Dec 26 03:06 orders.tbl
-rw-rw-r--. 1 chzhao chzhao 599829166 Dec 26 03:06 partsupp.tbl
-rw-rw-r--. 1 chzhao chzhao 121121810 Dec 26 03:06 part.tbl
-rw-rw-r--. 1 chzhao chzhao 389 Dec 26 03:06 region.tbl
-rw-rw-r--. 1 chzhao chzhao 7088217 Dec 26 03:06 supplier.tbl
[chzhao@localhost dbgen]$
根据/home/chzhao/Desktop/tpch_2_17_0/dbgen/dss.ddl来创建表,创建表以后load数据到表中
CREATE TABLE TPCH.NATION (
N_NATIONKEY INTEGER NOT NULL
,N_NAME CHAR(25) NOT NULL
,N_REGIONKEY INTEGER NOT NULL
,N_COMMENT VARCHAR(152)
) COMPRESS YES;
CREATE TABLE TPCH.REGION (
R_REGIONKEY INTEGER NOT NULL
,R_NAME CHAR(25) NOT NULL
,R_COMMENT VARCHAR(152)
) COMPRESS YES;
CREATE TABLE TPCH.PART (
P_PARTKEY INTEGER NOT NULL
,P_NAME VARCHAR(55) NOT NULL
,P_MFGR CHAR(25) NOT NULL
,P_BRAND CHAR(10) NOT NULL
,P_TYPE VARCHAR(25) NOT NULL
,P_SIZE INTEGER NOT NULL
,P_CONTAINER CHAR(10) NOT NULL
,P_RETAILPRICE DECIMAL(15, 2) NOT NULL
,P_COMMENT VARCHAR(23) NOT NULL
) COMPRESS YES;
CREATE TABLE TPCH.SUPPLIER (
S_SUPPKEY INTEGER NOT NULL
,S_NAME CHAR(25) NOT NULL
,S_ADDRESS VARCHAR(40) NOT NULL
,S_NATIONKEY INTEGER NOT NULL
,S_PHONE CHAR(15) NOT NULL
,S_ACCTBAL DECIMAL(15, 2) NOT NULL
,S_COMMENT VARCHAR(101) NOT NULL
) COMPRESS YES;
CREATE TABLE TPCH.PARTSUPP (
PS_PARTKEY INTEGER NOT NULL
,PS_SUPPKEY INTEGER NOT NULL
,PS_AVAILQTY INTEGER NOT NULL
,PS_SUPPLYCOST DECIMAL(15, 2) NOT NULL
,PS_COMMENT VARCHAR(199) NOT NULL
) COMPRESS YES;
CREATE TABLE TPCH.CUSTOMER (
C_CUSTKEY INTEGER NOT NULL
,C_NAME VARCHAR(25) NOT NULL
,C_ADDRESS VARCHAR(40) NOT NULL
,C_NATIONKEY INTEGER NOT NULL
,C_PHONE CHAR(15) NOT NULL
,C_ACCTBAL DECIMAL(15, 2) NOT NULL
,C_MKTSEGMENT CHAR(10) NOT NULL
,C_COMMENT VARCHAR(117) NOT NULL
) COMPRESS YES;
CREATE TABLE TPCH.ORDERS (
O_ORDERKEY INTEGER NOT NULL
,O_CUSTKEY INTEGER NOT NULL
,O_ORDERSTATUS CHAR(1) NOT NULL
,O_TOTALPRICE DECIMAL(15, 2) NOT NULL
,O_ORDERDATE DATE NOT NULL
,O_ORDERPRIORITY CHAR(15) NOT NULL
,O_CLERK CHAR(15) NOT NULL
,O_SHIPPRIORITY INTEGER NOT NULL
,O_COMMENT VARCHAR(79) NOT NULL
) COMPRESS YES;
CREATE TABLE TPCH.LINEITEM (
L_ORDERKEY INTEGER NOT NULL
,L_PARTKEY INTEGER NOT NULL
,L_SUPPKEY INTEGER NOT NULL
,L_LINENUMBER INTEGER NOT NULL
,L_QUANTITY DECIMAL(15, 2) NOT NULL
,L_EXTENDEDPRICE DECIMAL(15, 2) NOT NULL
,L_DISCOUNT DECIMAL(15, 2) NOT NULL
,L_TAX DECIMAL(15, 2) NOT NULL
,L_RETURNFLAG CHAR(1) NOT NULL
,L_LINESTATUS CHAR(1) NOT NULL
,L_SHIPDATE DATE NOT NULL
,L_COMMITDATE DATE NOT NULL
,L_RECEIPTDATE DATE NOT NULL
,L_SHIPINSTRUCT CHAR(25) NOT NULL
,L_SHIPMODE CHAR(10) NOT NULL
,L_COMMENT VARCHAR(44) NOT NULL
) COMPRESS YES;
C:\Program Files\IBM\SQLLIB\BIN>db2 list tables for schema tpch
Table/View Schema Type Creation time
------------------------------- --------------- ----- --------------------------
CUSTOMER TPCH T 2016-12-26-19.26.34.076001
LINEITEM TPCH T 2016-12-26-19.26.34.154001
NATION TPCH T 2016-12-26-19.26.28.168001
ORDERS TPCH T 2016-12-26-19.26.34.123001
PART TPCH T 2016-12-26-19.26.33.902001
PARTSUPP TPCH T 2016-12-26-19.26.34.045001
REGION TPCH T 2016-12-26-19.26.33.855001
SUPPLIER TPCH T 2016-12-26-19.26.33.983001
8 record(s) selected.
LOAD FROM "customer.tbl" OF DEL MODIFIED BY ANYORDER COLDEL| replace into TPCH.CUSTOMER nonrecoverable
LOAD FROM "lineitem.tbl" OF DEL MODIFIED BY ANYORDER COLDEL| replace into TPCH.LINEITEM nonrecoverable
LOAD FROM "nation.tbl" OF DEL MODIFIED BY ANYORDER COLDEL| replace into TPCH.NATION nonrecoverable
LOAD FROM "orders.tbl" OF DEL MODIFIED BY ANYORDER COLDEL| replace into TPCH.ORDERS nonrecoverable
LOAD FROM "part.tbl" OF DEL MODIFIED BY ANYORDER COLDEL| replace into TPCH.PART nonrecoverable
LOAD FROM "partsupp.tbl" OF DEL MODIFIED BY ANYORDER COLDEL| replace into TPCH.PARTSUPP nonrecoverable
LOAD FROM "region.tbl" OF DEL MODIFIED BY ANYORDER COLDEL| replace into TPCH.REGION nonrecoverable
LOAD FROM "supplier.tbl" OF DEL MODIFIED BY ANYORDER COLDEL| replace into TPCH.SUPPLIER nonrecoverable
REORG TABLE TPCH.CUSTOMER
REORG TABLE TPCH.LINEITEM
REORG TABLE TPCH.NATION
REORG TABLE TPCH.ORDERS
REORG TABLE TPCH.PART
REORG TABLE TPCH.PARTSUPP
REORG TABLE TPCH.REGION
REORG TABLE TPCH.SUPPLIER
####主键
ALTER TABLE TPCH.REGION ADD CONSTRAINT "PK_REGION" PRIMARY KEY (R_REGIONKEY)
ALTER TABLE TPCH.NATION ADD CONSTRAINT "PK_NATION" PRIMARY KEY (N_NATIONKEY)
ALTER TABLE TPCH.PART ADD CONSTRAINT "PK_PART" PRIMARY KEY (P_PARTKEY)
ALTER TABLE TPCH.SUPPLIER ADD CONSTRAINT "PK_SUPPLIER" PRIMARY KEY (S_SUPPKEY)
ALTER TABLE TPCH.PARTSUPP ADD CONSTRAINT "PK_PARTSUPP" PRIMARY KEY (PS_PARTKEY,PS_SUPPKEY)
ALTER TABLE TPCH.CUSTOMER ADD CONSTRAINT "PK_CUSTOMER" PRIMARY KEY (C_CUSTKEY)
ALTER TABLE TPCH.LINEITEM ADD CONSTRAINT "PK_LINEITEM" PRIMARY KEY (L_ORDERKEY,L_LINENUMBER)
ALTER TABLE TPCH.ORDERS ADD CONSTRAINT "PK_ORDERS" PRIMARY KEY (O_ORDERKEY)
####外键
ALTER TABLE TPCH.NATION ADD CONSTRAINT "FK_NATION_REGION" FOREIGN KEY (N_REGIONKEY) references TPCH.REGION(R_REGIONKEY)
ALTER TABLE TPCH.SUPPLIER ADD CONSTRAINT "FK_SUPPLIER_NATION" FOREIGN KEY (S_NATIONKEY) references TPCH.NATION(N_NATIONKEY)
ALTER TABLE TPCH.CUSTOMER ADD CONSTRAINT "FK_CUSTOMER_NATION" FOREIGN KEY (C_NATIONKEY) references TPCH.NATION(N_NATIONKEY)
ALTER TABLE TPCH.PARTSUPP ADD CONSTRAINT "FK_PARTSUPP_SUPPLIER" FOREIGN KEY (PS_SUPPKEY) references TPCH.SUPPLIER(S_SUPPKEY)
ALTER TABLE TPCH.PARTSUPP ADD CONSTRAINT "FK_PARTSUPP_PART" FOREIGN KEY (PS_PARTKEY) references TPCH.PART(P_PARTKEY)
ALTER TABLE TPCH.ORDERS ADD CONSTRAINT "FK_ORDERS_CUSTOMER" FOREIGN KEY (O_CUSTKEY) references TPCH.CUSTOMER(C_CUSTKEY)
ALTER TABLE TPCH.LINEITEM ADD CONSTRAINT "FK_LINEITEM_ORDERS" FOREIGN KEY (L_ORDERKEY) references TPCH.ORDERS(O_ORDERKEY)
ALTER TABLE TPCH.LINEITEM ADD CONSTRAINT "FK_LINEITEM_PARTSUPP" FOREIGN KEY (L_PARTKEY,L_SUPPKEY) references TPCH.PARTSUPP(PS_PARTKEY,PS_SUPPKEY)
####在外键列上建索引
CREATE INDEX TPCH.IX1_NATION ON TPCH.NATION(N_REGIONKEY)
CREATE INDEX TPCH.IX1_SUPPLIER ON TPCH.SUPPLIER(S_NATIONKEY)
CREATE INDEX TPCH.IX1_CUSTOMER ON TPCH.CUSTOMER(C_NATIONKEY)
CREATE INDEX TPCH.IX1_PARTSUPP ON TPCH.PARTSUPP(PS_SUPPKEY)
CREATE INDEX TPCH.IX2_PARTSUPP ON TPCH.PARTSUPP(PS_PARTKEY)
CREATE INDEX TPCH.IX1_ORDERS ON TPCH.ORDERS(O_CUSTKEY)
CREATE INDEX TPCH.IX1_LINEITEM ON TPCH.LINEITEM(L_ORDERKEY)
CREATE INDEX TPCH.IX2_LINEITEM ON TPCH.LINEITEM(L_PARTKEY,L_SUPPKEY)