db2 tpch数据库测试环境搭建


在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)


请使用浏览器的分享功能分享到微信等