7 Benchmark SQL 数据库测试工具代码——TPCC主程序

               

7.Benchmark SQL 数据库测试工具代码——TPCC主程序

欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/50357663

benchmarkSQL的主程序是jTPCC类。

继承了jTPCCConfig中的参数。

设置启动多少个会话进行测试。

记录交易的次数等。

1.  MAIN函数

实例化jTPCC类。

2.  getProp

获取属性值。

3.  jTPCC

构造函数。实现主要逻辑。

先加载配置文件。

输出相关属性值,包括驱动,用户名,数据仓库数量,测试中断数量等。

扫描二维码关注公众号,回复: 5111780 查看本文章

其中运行时间iRunMins和iRunTxnsPerTerminal只能一个设置为非零值。

此外还有每分钟交易的上限。各个事务的比例分配。

         调用updateStatusLine()函数更新状态。

         注册数据库驱动。

         成功注册驱动后,

         根据运行时间还是 每个终端每分钟运行的交易数量来执行测试。

         运行时间的变量:executionTimeMillis

         每个终端执行交易数量:transactionsPerTerminal

指定newOrderCounter = 0

         打印事务比例。

         然后:

根据设置启动的会话数量numTerminals,进行启动。

         会话数量不能超过warehouse数量乘以10.

         将启动的会话记录到usedTerminals二维数组中

                  int[][] usedTerminals = newint[numWarehouses][10];

         设置会话名字,然后实例化jTPCCTerminal (该类是会话具体实现类)。

         用数组terminals[]进行保存会话实例。

         循环启动设置的会话数量。

         接着:

         设置变量sessionEndTargetTime,是设置的执行时间,如果超过时间,需要停止测试。

         最后启动所有的会话(该类支持多线程并发)

4.  signalTerminalsRequestEnd

如果变量signalTerminalsRequestEndSent 为FALSE。

然后调用该函数时候入参为TRUE,则调用会话类函数stopRunningWhenPossible。

5.  signalTerminalEnded

将保持会话类的数组terminals[]每项设置为NULL,同时记录newOrderCounter数量。退出。

每个会话最后结束都会调用该函数,到最后一个会话结束后记录会话结束时间,同时重置变量sessionEndTargetTime,然后打印输出。

调用endReport函数来输出结果。

6.  signalTerminalEndedTransaction

每个事务结束会调用该函数,记录事务数量。

同时判断是否超过执行时间,如果超过则调用函数signalTerminalsRequestEnd函数来请求停止。

然后调用updateStatusLine函数来更新输出。

7.  endReport

输出运行结果。

8.  printMessage

输出信息。

9.  errorMessage

输出错误信息。

10.        exit

退出系统。

11.        randomNumber

随机一个数字。

12.        getCurrentTime

得到日期的字符串。

13.        getFileNameSuffix

返回时间格式的字符串。

14.        updateStatusLine

实时更新测试的状态信息。

fastNewOrderCounter是tpmC。

transactionCount是总共的值。

此外还输出最近5秒换算的平均tpmC。

输出内存相关信息。输出后,情空缓存。

           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

猜你喜欢

转载自blog.csdn.net/ugghhj/article/details/86620906
今日推荐