文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

BMSQL 5.0测试国产数据库TPCC使用方法

2024-04-02 19:55

关注

         以前也使用过Benchmarksql4.0做个测试,国庆用 Benchmarksql5.0也试了一下,BM5.0 和4.1 不同的地方在于他设置了数据库类型。如果没有对应的数据库类型就会报不支持索引需要修改java 包和SH 脚本增加一个DM 的类型


一、 准备环境

1.      已经启动的一个DM 数据库

BMSQL 5.0测试国产数据库TPCC使用方法

2.      JAVA 1.7 以上的环境

BMSQL 5.0测试国产数据库TPCC使用方法

3.      下载解压BMSQL5.0

BMSQL 5.0测试国产数据库TPCC使用方法

4.      将DMJDBC-1.8 放到bmsqsl 的lib 下

  BMSQL 5.0测试国产数据库TPCC使用方法

二、BMSQL 脚本新修改

1. 复制一个props.ora 该名为props.dm 并修改内容

# cp props.ora props.dm

# vi props.dm

db=dm

driver=dm.jdbc.driver.DmDriver

conn=jdbc:dm://LOCALHOST:5236

user=BMSQL

password=123456789

2.      进入/opt/benchmarksql-5.0/run/sql.common 修改tableCreate.sql

create table benchmarksql.bmsql_config (

  cfg_name    varchar(30) primary key,

  cfg_value   varchar(50)

);

create table benchmarksql.bmsql_warehouse (

  w_id        int   not null,

  w_ytd       float,

  w_tax       float,

  w_name      varchar(10),

  w_street_1  varchar(20),

  w_street_2  varchar(20),

  w_city      varchar(20),

  w_state     char(2),

  w_zip       char(9),

  cluster primary key(w_id)

)storage(fillfactor 2,without counter);

create table benchmarksql.bmsql_district (

  d_w_id       int       not null,

  d_id         int       not null,

  d_ytd        float,

  d_tax        float,

  d_next_o_id  int,

  d_name       varchar(10),

  d_street_1   varchar(20),

  d_street_2   varchar(20),

  d_city       varchar(20),

  d_state      char(2),

  d_zip        char(9),

  cluster primary key(d_w_id,d_id)

)storage(fillfactor 2,without counter);

create table benchmarksql.bmsql_customer (

  c_w_id         int        not null,

  c_d_id         int        not null,

  c_id           int        not null,

  c_discount     float,

  c_credit       char(2),

  c_last         varchar(16),

  c_first        varchar(16),

  c_credit_lim   float,

  c_balance      float,

  c_ytd_payment  float,

  c_payment_cnt  int,

  c_delivery_cnt int,

  c_street_1     varchar(20),

  c_street_2     varchar(20),

  c_city         varchar(20),

  c_state        char(2),

  c_zip          char(9),

  c_phone        char(16),

  c_since        timestamp,

  c_middle       char(2),

  c_data         varchar(500),

  cluster primary key(c_w_id,c_d_id,c_id)

);

create sequence benchmarksql.bmsql_hist_id_seq;

create table benchmarksql.bmsql_history (

  hist_id  int  default benchmarksql.bmsql_hist_id_seq.NEXTVAL,

  h_c_id   int,

  h_c_d_id int,

  h_c_w_id int,

  h_d_id   int,

  h_w_id   int,

  h_date   timestamp,

  h_amount float,

  h_data   varchar(24)

)storage(branch(32,32),without counter);

create table benchmarksql.bmsql_oorder (

  o_w_id       int      not null,

  o_d_id       int      not null,

  o_id         int      not null,

  o_c_id       int,

  o_carrier_id int,

  o_ol_cnt     float,

  o_all_local  float,

  o_entry_d    timestamp,

  cluster primary key(o_w_id,o_d_id,o_id)

);

create table benchmarksql.bmsql_new_order (

  no_w_id  int   not null,

  no_d_id  int   not null,

  no_o_id  int   not null,

  cluster primary key(no_w_id,no_d_id,no_o_id)

);

create table benchmarksql.bmsql_order_line (

  ol_w_id         int   not null,

  ol_d_id         int   not null,

  ol_o_id         int   not null,

  ol_number       int   not null,

  ol_i_id         int   not null,

  ol_delivery_d   timestamp,

  ol_amount       float,

  ol_supply_w_id  int,

  ol_quantity     float,

  ol_dist_info    char(24),

  cluster primary key(ol_w_id,ol_d_id,ol_o_id,ol_number)

);

create table benchmarksql.bmsql_stock (

  s_w_id       int       not null,

  s_i_id       int       not null,

  s_quantity   float,

  s_ytd        float,

  s_order_cnt  int,

  s_remote_cnt int,

  s_data       varchar(50),

  s_dist_01    char(24),

  s_dist_02    char(24),

  s_dist_03    char(24),

  s_dist_04    char(24),

  s_dist_05    char(24),

  s_dist_06    char(24),

  s_dist_07    char(24),

  s_dist_08    char(24),

  s_dist_09    char(24),

  s_dist_10    char(24),

  cluster primary key(s_i_id,s_w_id)

);

create table benchmarksql.bmsql_item (

  i_id     int      not null,

  i_name   varchar(24),

  i_price  float,

  i_data   varchar(50),

  i_im_id  int,

  cluster primary key(i_id)

);

注1 :DECIMAL 类型都改为FLOAT 类型

注2 :去掉外键

注3 :主键强制聚集

修改indexCreate.sql 脚本

create index ndx_customer_name

  on  benchmarksql.customer (c_w_id, c_d_id, c_last, c_first);

目前只需要这一个索引

三、 修改JAVA 包和sh 脚本添加DM7

# cd /opt/benchmarksql-5.0/src/client/jTPCC.java

# vi jTPCC.java

if (iDB.equals("firebird"))

            dbType = DB_FIREBIRD;

        else if (iDB.equals("oracle"))

            dbType = DB_ORACLE;

        else if (iDB.equals("postgres"))

            dbType = DB_POSTGRES;

        else if (iDB.equals("dm7"))

            dbType = DB_DM;

        else

        {

            log.error("unknown database type '" + iDB + "'");

            return;

        }

        if(Integer.parseInt(limPerMin) !=0){

            limPerMin_Terminal = Integer.parseInt(limPerMin)/Integer.parseInt(iTerminals);

        }

        else{

            limPerMin_Terminal = -1;

        }

标红处为手动添加的数据库类型

#cd /opt/benchmarksql-5.0/run

#vi funcs.sh

function setCP()

{

    case "$(getProp db)" in

        firebird)

            cp="../lib/firebird/*:../lib/*"

            ;;

        oracle)

            cp="../lib/oracle/*"

            if [ ! -z "${ORACLE_HOME}" -a -d ${ORACLE_HOME}/lib ] ; then

                cp="${cp}:${ORACLE_HOME}/lib/*"

            fi

            cp="${cp}:../lib/*"

            ;;

        postgres)

            cp="../lib/postgres/*:../lib/*"

            ;;

        dm7)

            cp="../lib/dm7/*:../lib/*"

            ;;

    esac

    myCP=".:${cp}:../dist/*"

    export myCP

}

省略。。。。。。。。。。。

case "$(getProp db)" in

    firebird|oracle|postgres| dm7)

        ;;

    "") echo "ERROR: missing db= config option in ${PROPS}" >&2

        exit 1

        ;;

    *)  echo "ERROR: unsupported database type 'db=$(getProp db)' in ${PROPS}" >&2

        exit 1

        ;;

esac

标红处为添加部分

四、 执行数据创建和装载

1.      创建表和索引

#./runSql props.dm sql.common/tableCreate.sql

#./runSql props.dm sql.common/indexCreate.sql

2.      装载数据

#./runLoader.sh props.dm warehourse 1

五、 运行TPC-C

./runBenchmark.sh props.dm

BMSQL 5.0测试国产数据库TPCC使用方法

执行结束

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯