我正在对我的 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 微秒。
可以肯定的是,我多次运行此性能测试并确认了此数据。我对这种行为感到困惑 - 想法?