如何在java中测量数据库获取所花费的时间

如何在java中测量数据库获取所花费的时间,java,performance,servlets,jdbc,Java,Performance,Servlets,Jdbc,我正在尝试从我的Javaservlet中查找数据库获取所花费的时间。Db fetch理想情况下应该返回大约1K行。要获取的函数如下所示 ps = dbConnection.prepareStatement(select xxxx from xxxx); rs = ps.executeQuery(); while (rs.next()) { rs.getString(1); } 我只需要DB call/fetch的时间(即,我不需要从池中获取连接所需的时间,也不

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

ps = dbConnection.prepareStatement(select xxxx from xxxx);
rs = ps.executeQuery();
while (rs.next()) 
    {
        rs.getString(1);
    }
我只需要DB call/fetch的时间(即,我不需要从池中获取连接所需的时间,也不需要解析数据所需的时间等)

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

  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);
第二种方法:

  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);

非常感谢您的帮助。

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


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