Statement.executeQuery занимает одинаковое количество времени для каждого запроса SQL
Я пытаюсь сравнить производительность двух запросов, установив соединение, подготовив оператор и выполнив запрос. Захват времени с использованием 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 ответ
Вы должны использовать 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));
прочитайте этот ответ для получения дополнительной информации