如何在java中测量数据库获取所花费的时间
我正在尝试从我的Javaservlet中查找数据库获取所花费的时间。Db fetch理想情况下应该返回大约1K行。要获取的函数如下所示如何在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的时间(即,我不需要从池中获取连接所需的时间,也不
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
。谢谢。我认为我对结果集的理解是不对的。