作者简介:王芝超,数据库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;
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
加载数据, 由于是个人笔记本电脑,仓库数选的小一些
./runLoader.sh props.ob
创建表的相关索引,提高执行效率。
./runSQL.sh props.ob sql.oceanbase/indexCreates.sql
1.3 TPCC 测试
当数据初始化完后,数据和表的索引都以完成后,即可开始 TPCC 的测试,运行如下命令开始测试。
./runBenchmark.sh props.ob
测试的详细信息在 my_result_2022-02-07_121917/data/result.csv 文件中。
2 分析 TOPSQL 的执行计划
分析 TPC-C TOP SQL,并查看3条 SQL 的解析执行计划和实际执行计划
执行过的 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
Explain SELECT i_price, i_name, i_data FROM bmsql_item WHERE i_id = 3
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
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
3 避坑指南
加载测试数据报超时,需要调整参数
————————————————
附录:
练习题:
实践练习一(必选):OceanBase Docker 体验
实践练习二(必选):手动部署 OceanBase 集群
实践练习三(可选):使用OBD 部署一个 三副本OceanBase 集群
实践练习四(必选):迁移 MySQL 数据到 OceanBase 集群
实践练习五(可选):对 OceanBase 做性能测试
实践练习六(必选):查看 OceanBase 执行计划
还没交作业的小伙伴要抓紧啦!
可以免费带走 OBCP 考试券喔~~
方法一:完成四道必选练习
方法二:任意一道练习题 ➕ 结业考试超过80分
已经有很多同学抢先答题了,
加入钉钉群(群号3582 5151),和大家一起学习、交流~~
进群二维码: