我试图通过获取连接,准备语句和执行查询来比较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));
答案 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了解详情