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

прочитайте этот ответ для получения дополнительной информации

Другие вопросы по тегам