- PR -

Java実装時のレスポンス悪化について

投稿者投稿内容
Msa
会議室デビュー日: 2003/10/22
投稿数: 5
投稿日時: 2003-12-12 20:00
引用:

永井和彦さんの書き込み (2003-12-12 19:48) より:

この状況から考えると、やはりPreparedStatementに値をBindする際に
違った型で指定してしまって……というのが、ありそうな気がしてきます。

もう一度見返されてはいかがでしょうか?

と……ふと思ったのですが、SQLPlusに貼り付けて「素早いレスポンスが
確認出来ているSQL文」をPreparedStatementのSQLとして直で指定しても
反応は遅いですか?
#PreparedStatementに対するBindをコードで行わず、条件句に出てくる
#数値や文字列もそのまま記入したSQL文を使用した場合でです




Bind部分は徹底的にチェックしたつもりではいるんですが・・・

確かに、おっしゃるような確認はしていません。
これから試してみます。
これで動けば、Bind部分に問題がありそうですね。

どうもありがとうございます。
銀太郎
会議室デビュー日: 2003/11/06
投稿数: 4
投稿日時: 2003-12-12 21:48
まったく関係ないかもしれませんが、
サーバー側の空きメモリは十分あるでしょうか?
私の経験では空きメモリが100M程度では300M時に
比べて20倍もの応答時間になりました。
ログを見るとサーバーでの処理時間に大きな差は
無いのに応答時間が極端に長くなっていました。

以上、参考になれば。
teto
ベテラン
会議室デビュー日: 2002/07/31
投稿数: 61
投稿日時: 2003-12-12 22:55
はじめまして

>Javaで実行しているSQL文を抜き出してSQLPlusで実行した場合は、
>1秒以内でレスポンスが帰ってくるのに、
>Javaアプリ内部で実行した場合は、
>executeQueryメソッド発行後、ノーレスになってしまいます。

SQLPLusで実行とJava内で実行は同時にやっていますか?
なにをいいたいかと言うと、DBサーバ側の要因かどうか
の切り分けをおこなうためです。
過去の事例だと、データーベースリンク(?)とかが
問題になることがありました。

つぎに、実行環境(リソース漏れとかはこれですね)
の問題を疑いましょう。

最後にJDBCの動作の問題を検証するために、
IDE等でデバッグ環境を整えてじっくり
検証すべきだとおもいます。
Gio
ぬし
会議室デビュー日: 2003/11/28
投稿数: 350
お住まい・勤務地: 都内から横浜の間に少量発生中
投稿日時: 2003-12-12 23:33
SQL*Plus からの起動では問題がないということと、銀太郎さんの書き込みを見て、Java を実行する時のヒープが極端に不足しているのではないかという問題が気になりました。
50 件程度のデータとは言え、その ResultSet を保持するメモリが不足してスワップが発生して速度が落ちるという問題は良く耳にします。
初期ヒープや最大ヒープのサイズを変更してみるとどうなるでしょうか。

母体テーブルが大きいので、DBMS 内部が良い性能を出せる状態になっているのかということも、Oracle Master 保持者としてはやはり気になりますが

スキルアップ/キャリアアップ(JOB@IT)