2016-06-21 11 views
0

ブロック全体の実行時間を簡単に測定する方法はありますか? これはクローズドコードの大きなJava WARアプリケーションですので、一部のAOPでstartTime/endTimeブロックを導入するのは難しいと思います。接続を想定しlog4jdbc両方のSQLタイミング:PreparedStatementの実行SELECT +全体の結果セットの取得

// startTime 

PreparedStatement prep = ... 
ResultSet rs = prep.executeQuery(); 
// iterate over whole rs 

// endTime 
// executionTime = endTime - startTime 

は1つが、いくつかのJavaアプリケーションサーバが提供する「使用中の接続」の時間のタイミングを使用することができ、それぞれの文の後にDBのプールに戻されます。しかし、私は最も簡単な解決策を探しています。

+0

独自のコードで "実際の"接続をラップすることができます。これにより、PreparedStatement.executeQuery()でTimerを開始し、ResultSet.close()で終了タイマーを起動できるようになります。そして代理オブジェクトはEclipseで作成するのが簡単です... – Jan

+0

私は簡単に豚のメソッドを記録するBTrace + VisualVMの統合を考えています。 – j23

答えて

0

質問を閉じる: log4jdbcコードにいくつかの行を追加して(結果セットを閉じるクエリを開始してから)全体の時間を測定し、しきい値を超えるとログに記録します。

関連する問題