- - PR -
SQL実行速度について
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-08-25 19:57
いつもお世話になっております。
全く同じSQLを、SQL+で実行した場合、一瞬で結果が返るSQLが、 下記のようにJavaから実行すると、かなり時間がかかってしまいます。(1分程度) 何かここがおかしいのでは?という事がありましたら、教えてください。 ------------------------------------------------------------------ ■環境 J2SDK 1_4_2_06 Oracle 9.0.1.0.1 Tomcat4.1.24 ------------------------------------------------------------------ public AAAForm getData(AAAForm fm, int page) throws Exception{ Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; int para = 1; ArrayList result = new ArrayList(); try { conn = getConnection(); ps = conn.prepareStatement(SQL); ps.setString(para++, A); ps.setString(para++, B); ps.setString(para++, C); … // パラメータが全部で12個あります。 rs = ps.executeQuery(); // ←大変時間がかかります。 while(rs.next()){ ・ ・ ・ } }catch(Exception e) { throw new Exception(e); }finally { if(rs != null){ try { rs.close(); } catch (SQLException e){ e.printStackTrace(); }} if(ps != null){ try { ps.close(); } catch (SQLException e){ e.printStackTrace(); }} if(conn != null){ try { conn.close(); } catch (SQLException e){ e.printStackTrace(); }} } } ------------------------------------------------------------------ どうぞご教授をお願いいたします。 | ||||
|
投稿日時: 2006-08-25 23:44
どんなSQLを実行しても変わらないんですかね?
更新系のSQLだと遅いとか。 | ||||
|
投稿日時: 2006-08-28 09:13
お返事をいただき、ありがとうございます。
今回問題となっているSQLは、SELECT文です。 もし、お心当たりがありましたら、 ご教授をお願い致します。 | ||||
|
投稿日時: 2006-08-28 09:16
わかんねーかな?
試せって言ってるんだよ。
| ||||
|
投稿日時: 2006-08-28 10:36
ぶさいくろうさんは言いにくいことをずばっと言ってくれて素敵。
さて。本当に「全く同じSQL」なんでしょうか? Oracleだったら実行計画を確認するなどしてみてください。 SELECTでパフォーマンスに違いが出るとなれば インデックス絡みとかがよくあるパターンですね。 どんなSQLを流しているのかも情報ないわけですし、 実際にそちらで手を動かしてみないことには解決しないでしょう。 刑事は足でSEは手でしょうかね | ||||
|
投稿日時: 2006-08-28 10:59
既に言われているように
いろいろなSQL文を試して見て 真実に同じSQL文なのに Java-Oracleの通信を行うと問題があるのでしたら 間にあるものがおかしいのではないでしょうか? それと 同じSQL文を試す際にはバインドするを止めるべきかと。 ご提示されているJavaのソースを見る限り 同じSQL文を試しているとは思えないのです。 | ||||
|
投稿日時: 2006-08-28 15:40
たくさんのお返事を頂き、ありがとうございました。
色々なSQLの実行(参照系、更新系)、 実行計画の取得、 インデックスの検討、 バインド変数の検討(有り/無しなど)、 Statementの検討 等につきましては、試行済みですが、改善されませんでした。 ご指摘にもありますように、 こちらでもう少し様々な問題を考えて試行錯誤してみます。 | ||||
|
投稿日時: 2006-08-28 15:58
msoです。
そこまでやっているのであればどのような結果が返ってきたのか、 提示してください。 このSQLを実行したときは、こういう結果が返ってきたという感じです。 今のままでは誰にも解決できませんよ。 |