【问题标题】:How to measure time taken for a DB fetch in javajava - 如何测量在java中获取数据库所花费的时间
【发布时间】:2015-01-05 21:19:39
【问题描述】:

我正在尝试查找从我的 java servlet 获取数据库所花费的时间。理想情况下,Db 提取应该返回大约 1K 行。获取的函数如下。

ps = dbConnection.prepareStatement(select xxxx from xxxx);
rs = ps.executeQuery();
while (rs.next()) 
    {
        rs.getString(1);
    }

我只需要数据库调用/获取的时间(即,我不需要从池中获取连接所花费的时间,或者解析数据所花费的时间等)

如果我需要单独查找提取所花费的时间,以下是正确的方法。
第一种方法:

  ps = dbConnection.prepareStatement(select xxxx from xxxx);
int initialTime=getTime();
rs = ps.executeQuery();
int finalTime=getTime();
while (rs.next()) 
    {
        rs.getString(1);
    }
System.out.println("Time taken="+ finalTime - initialTime);

第二种方法:

 ps = dbConnection.prepareStatement(select xxxx from xxxx);
int initialTime=getTime();
rs = ps.executeQuery();
while (rs.next()) 
    {
        rs.getString(1);
    }
int finalTime=getTime();
System.out.println("Time taken="+ finalTime - initialTime);

非常感谢任何帮助。

【问题讨论】:

  • 您必须同时计算两者的时间 - 没有任何方法可以将两者分开。第一种方法不会从数据库中读取任何数据——它只是打开一个游标。你可以循环而不调用getXXX
  • 谢谢。我认为我对结果集的理解是不正确的。

标签: java performance servlets jdbc


【解决方案1】:

javamelody 是一个库,可让您测量查询时间、内存使用情况等。

https://code.google.com/p/javamelody/

【讨论】:

    猜你喜欢
    • 2013-12-11
    • 1970-01-01
    • 1970-01-01
    • 2010-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多