BenchmarkSQL查询调优¶
调优准备¶
以上是对BenchmarkSQL数据导入过程进行了调优,接下来将对查询进行一定的调优。
运行环境:
Windows2008 64位机
16g内存
双核cpu
分别运行以下命令,导入数据。
runSQL mysql.properties sqlTableCreates
此命令用于创建TPCC测试所需的数据库表
loadData mysql.properties numWarehouses=100
此命令用于加载TPCC测试所需的数据,warehouse越多数据量越大,为100时数据量约10G。
runSQL mysql.properties sqlIndexCreates
此命令用于创建TPCC测试所需的索引。
调优过程¶
开启数据库ENABLE_TIME_STAT(运行时诊断的时间统计)参数。设置100个warehouse,50个用户,其他设置不变。运行BenchmarkSQL10分钟以用来预热。然后运行tpcc测试,30分钟。
运行过程中,可以看到cpu的使用情况,cpu使用率很低。如图:
42Cpu使用率
运行完毕,tpcc测试结果如下:
图242 结果1
查看系统级等待事件,发现等待事件最长的事件为BufSyncPhysicalReadWait,如图:
图243 系统级等待事件1
分析该等待事件的等待事件,我们可以通过设置参数BUF_DATA_BUFFER_PAGES(数据缓冲区页数),该参数大小可根据当前系统实际的内存大小及使用情况进行设置。
下面将BUF_DATA_BUFFER_PAGES参数由原来的系统默认的8192改为819200。
重复以上步骤:开启数据库ENABLE_TIME_STAT(运行时诊断的时间统计)参数。设置100个warehouse,50个用户,其他设置不变。运行BenchmarkSQL10分钟以用来预热。然后运行tpcc测试,30分钟。
运行过程中的cpu使用情况,明显cpu使用率提升了许多。说明事务处理能力得到了很大的提升。如下图:
图244 cpu使用率
Tpcc测试结束,tpmc的值如图:
图245 Tpcc测试结果2
调优前后tpcc测试对比如下:
表格 19Tpcc测试结果对比
| 测试条件 | Tpmc值 | ||
|---|---|---|---|
版本:运行时诊断工具 ENABLE_TIME_STAT(运行时诊断的时间统计):开启(true) BUF_DATA_BUFFER_PAGES(数据缓冲区页数):8192-819200 |
954.37 | 24377.22 | Tpmc的值提高了24.54倍,提高显著。 |