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マイクロ秒近くかかることがわかります。
念のため、このパフォーマンス テストを複数回実行し、このデータを確認しました。私はこの行動に困惑しています - 考えていますか?