Statement.executeQuery为每个SQL查询花费相同的时间

时间:2016-03-21 18:00:32

标签: java sql executequery

我试图通过获取连接,准备语句和执行查询来比较2个查询的性能。 在System.currentTimeMillis()之前和之后使用executeQuery()捕获所花费的时间。

具有讽刺意味的是,无论查询是什么,所用的时间总是相同的。(忽略第一次执行)

有人可以告诉我,如何获得查询执行所需的正确时间?

代码段:

Connection conn = DriverManager.getConnection(url,"721junits","721junits");
Statement stmt = conn.createStatement();
ResultSet rs;
long startTime = System.currentTimeMillis();
rs = stmt.executeQuery(sql);
long endTime = System.currentTimeMillis();
conn.close();

System.out.println("Total time taken : "+ (endTime - startTime));

1 个答案:

答案 0 :(得分:0)

你应该使用system.nanoTime()

Connection conn = DriverManager.getConnection(url,"721junits","721junits");
Statement stmt = conn.createStatement();
ResultSet rs;
long startTime = System.nanoTime();
rs = stmt.executeQuery(sql);
long endTime = System.nanoTime();
conn.close();

System.out.println("Total time taken : "+ (endTime - startTime));

请阅读此answer了解详情