泛微网络实践:TPCC测试和SQL执行计划

2024年 5月 7日 64.5k 0

作者简介:王芝超,数据库DBA。

1     TPC-C测试

(必选)使用 BenmarkSQL运行 TPC-C ,并发数不用很高,5~10 并发即可(根据机器资源)。

(必选)分析 TPC-C TOP SQL 并查看 3条 SQL 的 解析执行计划 和 实际执行计划。

 

使用 BenchmarkSQL 运行 TPC-C 测试

benchmarksql 开源项目是对TPC-C标准的实现。下面使用 BenchmarkSQL 运行 TPC-C 进行 5~10 并发场景测试。

 

提前登录租户创建数据库和用户

create database tpcc;
create user tpcc identified by "tpcc";
grant all privileges on tpcc.* to tpcc;

 

泛微网络实践:TPCC测试和SQL执行计划-1

 

 

1.1   安装 benchmarksql

 

下载软件后解压即可

unzip -qo benchmarksql-5.0.zip
cd benchmarksql-5.0

 

 

1.2   TPCC 数据初始化

sql 文件在 benchmarksql-5.0-master/run/sql.oceanbase 中,看了一些建表语句,使用了 varchar2 类型,ob 为 mysql 模式,需要修改:

 

cp tableCreates.sql tableCreates2.sql
sed -i 's/varchar2/varchar/g' tableCreates2.sql
 
./runSQL.sh props.ob sql.oceanbase/tableCreates2.sql

 

泛微网络实践:TPCC测试和SQL执行计划-2

 

 

加载数据, 由于是个人笔记本电脑,仓库数选的小一些

./runLoader.sh props.ob

 

泛微网络实践:TPCC测试和SQL执行计划-3

 

创建表的相关索引,提高执行效率。

./runSQL.sh props.ob sql.oceanbase/indexCreates.sql

泛微网络实践:TPCC测试和SQL执行计划-4

 

1.3   TPCC 测试

当数据初始化完后,数据和表的索引都以完成后,即可开始 TPCC 的测试,运行如下命令开始测试。

./runBenchmark.sh props.ob

泛微网络实践:TPCC测试和SQL执行计划-5

测试的详细信息在 my_result_2022-02-07_121917/data/result.csv 文件中。

 

 

2     分析 TOPSQL 的执行计划

分析 TPC-C TOP SQL,并查看3条 SQL 的解析执行计划和实际执行计划

 

泛微网络实践:TPCC测试和SQL执行计划-6

执行过的 SQL 在 obproxy_digest.log 中有记录,可查看文件进行查找 sql 。

2.1   查看执行计划

使用 explain 命令查看理论的执行计划

 

Explain select count(*) as low_stock
  from (select s_w_id , s_i_id, s_quantity
          from bmsql_stock
         where s_w_id = 2
           and s_quantity < 10
           and s_i_id in (select ol_i_id
                            from bmsql_district
                            join bmsql_order_line
                              on ol_w_id = d_w_id
                             and ol_d_id = d_id
                             and ol_o_id >= d_next_o_id - 20
                             and ol_o_id < d_next_o_id
                           where d_w_id = 2
                             and d_id = 2))\G
 

泛微网络实践:TPCC测试和SQL执行计划-7

 

Explain SELECT i_price, i_name, i_data     FROM bmsql_item     WHERE i_id = 3

泛微网络实践:TPCC测试和SQL执行计划-8

 

Explain select sum(ol_amount) as sum_ol_amount
  from bmsql_order_line
 where ol_w_id = 1
   and ol_d_id = 3
   and ol_o_id = 2105

 

泛微网络实践:TPCC测试和SQL执行计划-9

 

2.2   查看实际执行计划

通过视图 GV$sql_audit 来查看实际的 SQL 执行计划。

select sum(ol_amount) as sum_ol_amount
  from bmsql_order_line
 where ol_w_id = 1
   and ol_d_id = 3
   and ol_o_id = 2105

 

泛微网络实践:TPCC测试和SQL执行计划-10

 

 

3     避坑指南

加载测试数据报超时,需要调整参数

 

泛微网络实践:TPCC测试和SQL执行计划-11

 

 

————————————————

 

附录:

练习题:

实践练习一(必选):OceanBase Docker 体验 

实践练习二(必选):手动部署 OceanBase 集群 

实践练习三(可选):使用OBD 部署一个 三副本OceanBase 集群 

实践练习四(必选):迁移 MySQL 数据到 OceanBase 集群 

实践练习五(可选):对 OceanBase 做性能测试 

实践练习六(必选):查看 OceanBase 执行计划 

还没交作业的小伙伴要抓紧啦!

可以免费带走 OBCP 考试券喔~~

方法一:完成四道必选练习

方法二:任意一道练习题 ➕ 结业考试超过80分

已经有很多同学抢先答题了,

加入钉钉群(群号3582 5151),和大家一起学习、交流~~

进群二维码:

泛微网络实践:TPCC测试和SQL执行计划-12

 

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论