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使用率很低。如图:

../../../../../../_images/image1542.png

42Cpu使用率

运行完毕,tpcc测试结果如下:

../../../../../../_images/image1552.png

图242 结果1

查看系统级等待事件,发现等待事件最长的事件为BufSyncPhysicalReadWait,如图:

../../../../../../_images/image1562.png

图243 系统级等待事件1

分析该等待事件的等待事件,我们可以通过设置参数BUF_DATA_BUFFER_PAGES(数据缓冲区页数),该参数大小可根据当前系统实际的内存大小及使用情况进行设置。

下面将BUF_DATA_BUFFER_PAGES参数由原来的系统默认的8192改为819200。

重复以上步骤:开启数据库ENABLE_TIME_STAT(运行时诊断的时间统计)参数。设置100个warehouse,50个用户,其他设置不变。运行BenchmarkSQL10分钟以用来预热。然后运行tpcc测试,30分钟。

运行过程中的cpu使用情况,明显cpu使用率提升了许多。说明事务处理能力得到了很大的提升。如下图:

../../../../../../_images/image1571.png

图244 cpu使用率

Tpcc测试结束,tpmc的值如图:

../../../../../../_images/image1581.png

图245 Tpcc测试结果2

调优前后tpcc测试对比如下:

表格 19Tpcc测试结果对比

测试条件 Tpmc值    

版本:运行时诊断工具

ENABLE_TIME_STAT(运行时诊断的时间统计):开启(true)

BUF_DATA_BUFFER_PAGES(数据缓冲区页数):8192-819200

954.37 24377.22 Tpmc的值提高了24.54倍,提高显著。