Я выполняю профилирование моего Java-приложения и нашел интересную статистику для вызова jdbc PreparedStatement:
Ниже приведены подробности об окружающей среде:
База данных: Sybase SQL Anywhere 10.0.1
Драйвер: com.sybase.jdbc3.jdbc.SybDriver
пул соединений: c3p0
JRE: 1.6.0_05
Данный код указан ниже:
try {
ps = conn.prepareStatement(sql);
ps.setDouble(...);
rs = ps.executeQuery();
......
return xyz;
}
finally {
try {
if (rs != null) rs.close();
if (ps != null) ps.close();
}
catch (SQLException sqlEx) {
}
}
Из статистики JProfiler я обнаружил, что только этот конкретный оператор resultspace.close () занимает много времени. Он варьируется от 25 мс до 320 с, в то время как для других кодовых блоков, которые имеют одинаковую природу, я считаю, что это занимает около 20 микросекунд.
Просто чтобы быть уверенным, я несколько раз запускал этот тест производительности и подтверждал эти данные. Я озадачен этим поведением - Мысли?