从Loadrunner .mdb文件中获取的事务响应时间百分比是什么的-sql-used-to-get事务响应时间百分比

时间:2014-08-26 12:33:07

标签: sql load loadrunner

我正在开发一个项目,我们直接点击Loadrunner事务.mdb文件来提取原始数据。

  

mdb是microsoft access数据库,它将信息存储在各种表中。任何人都可以帮帮我,哪个表参考获取响应时间相关信息?我选择的一个表是“BasicTransactionPercentile”,但是这个表似乎非常不一致,在一个.mdb文件中它存在,而在其他表中则没有。

请帮忙!

2 个答案:

答案 0 :(得分:0)

mdb文件中的所有表和关系都记录在[Metadata]表中,包括主键和外键。对于交易信息,您需要关注[事件计量表]表中包含的原始数据及其关系。您需要从[Metadata]表中提取所需的关系,以获取事务类型的事件名称以及传递的状态。

与其他一些数据库引擎(如SQL Server和ORACLE)不同,Access没有可以利用的内置百分位函数,这意味着您需要从基本统计函数编写自己的函数。您是否考虑过将SQL Server(甚至是快速版)用作分析数据存储?

答案 1 :(得分:0)

使用jackcess API,这是如何通过Java从mdb文件中提取事务性内容的胆量。

您可以从Event_map获取“交易”事件ID的列表

Table table = db.getTable("Event_map");

然后您可以通过“ Event_meter”表并选择所需的事务事件,这是事务执行和经过时间的概述

Table table = db.getTable("Event_meter");
for (Row row : table) { .....
    //  The txn recored time "End Time" is the relative end time in seconds to 3 decimals of the txn.  Storing as epoch time in msecs  
    Double txnSecsFromStart =  (Double)row.get("End Time"); 
    Long txnEpochTimeMsecs = new Double( runStartTimeEpochMsecs + txnSecsFromStart * 1000 ).longValue();
    lrEventMeterBean.setEndTime(txnEpochTimeMsecs.toString()); 

    BigDecimal rawValue  = new BigDecimal((Double)row.get("Value"     )).setScale(6, RoundingMode.HALF_UP);
    BigDecimal thinkTime = new BigDecimal((Double)row.get("Think Time")).setScale(6, RoundingMode.HALF_UP);                 
    lrEventMeterBean.setValue( rawValue.subtract(thinkTime));   

.... //其他字段等等

注意:“ runStartTimeEpochMsecs”是从“结果”表中获得的

由于Access中的数据操作非常有限,因此我们将提取的数据加载到mySql数据库中。然后就有可能获得与“分析”报告相匹配的第90个百分位数之类的值(需要做一些工作!)。

PS:记住我在这里谈论的mdb文件具有整个测试的数据,过滤后的数据以不同的方式处理。 IMO过滤的数据太复杂而不必担心(毕竟,分析报告的神奇和复杂性是您所要付出的……)。同样,我们使用mySql db进行基本过滤。