iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >BMSQL 5.0测试国产数据库TPCC使用方法
  • 557
分享到

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

2024-04-02 19:04:59 557人浏览 八月长安
摘要

         以前也使用过Benchmarksql4.0做个测试,国庆用 Benchmarksql5.0也试了一下,BM5.0 和4.1 不同的地方在

         以前也使用过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使用方法

执行结束

您可能感兴趣的文档:

--结束END--

本文标题: BMSQL 5.0测试国产数据库TPCC使用方法

本文链接: https://www.lsjlt.com/news/46496.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • sql中外码怎么设置
    sql 中外码设置步骤:确定父表和子表。在子表中创建外码列,引用父表主键。使用 foreign key 约束将外码列链接到父表主键。指定引用动作,以处理父表数据更改时的子表数据操作。 ...
    99+
    2024-05-15
  • sql中having是什么
    having 子句用于过滤分组结果,应用于分组后的数据集。它与 where 子句类似,但基于分组结果而不是原始数据。用法:1. 过滤分组后的聚合值。2. 根据分组后的...
    99+
    2024-05-15
  • 在sql中空值用什么表示
    在 sql 中,空值表示未知或不存在的值,可使用 null、空字符串或特殊值表示。处理空值的方法包括使用操作符(is null/is not null)、coalesce 函数(返回第一...
    99+
    2024-05-15
    oracle
  • sql中number什么意思
    sql 中的 number 类型用于存储数值数据,包括小数和整数,特别适合货币、度量和科学数据。其精度由 scale(小数点位数)和 precision(整数字段和小数字段总位数)决定。...
    99+
    2024-05-15
  • sql中空值赋值为0怎么写
    可以通过使用 coalesce() 函数将 sql 中的空值替换为指定值(如 0)。coalesce() 的语法为 coalesce(expression, replacement),其...
    99+
    2024-05-15
  • sql中revoke语句的功能
    revoke 语句用于撤销指定用户或角色的权限或角色成员资格。可撤销的权限包括 select、insert、update、delete 等,撤销的对象类型包括表、视图、存储过程...
    99+
    2024-05-15
    敏感数据
  • sql中REVOKE是什么意思
    revoke 是 sql 中用于撤销用户或角色对数据库对象权限的命令。它通过撤销权限类型、对象级别和目标权限来实现:权限类型:撤销 select、insert、update、d...
    99+
    2024-05-15
  • sql中sp是什么意思
    sql中的sp是存储过程的缩写,它是一种预编译的、已命名的sql语句块,存储在数据库中,可以被用户通过简单命令调用。存储过程的特点有:可重用性、模块化、性能优化、安全性、事务支持。存储过...
    99+
    2024-05-15
    敏感数据
  • sql中references是什么意思
    sql 中的 references 关键字用于在外键约束中定义表之间的父-子关系。外键约束确保子表中的行都引用父表中存在的行,从而维护数据完整性。references 语法的格式为:fo...
    99+
    2024-05-15
  • sql中判断字段为空怎么写
    sql 中可通过 4 种方法判断字段是否为空:1)is null 运算符;2)is not null 运算符;3)coalesce() 函数;4)case 语句。例如,查询所有 colu...
    99+
    2024-05-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作