- PR -

insert、update文実行の遅れについて

1
投稿者投稿内容
ノヴァ
会議室デビュー日: 2006/03/31
投稿数: 14
投稿日時: 2006-04-14 19:32
現在、javaプログラムからinsert、update文を発行し、jdbc経由でテーブルを更新する処理を作成しています。

しかし、開発環境とテスト環境の間で、更新時間のパフォーマンスに差異がでて困っています。
=============================================================
開発環境 :AP Tomcat 5.0.28 DB Oracle 9i 9.2.0.6.0
テスト環境:AP Tomcat 5.0.28 DB Oracle 9i 9.2.0.6.0
=============================================================

まず、insert、update文をsql plus等を使用して実行したところ、開発環境・テスト環境共に、パフォーマンスはよかったです。(どちらも1秒以内位)
次に、開発環境でjavaからinsert、update文を呼んだところ、1〜2秒くらいでした。
最後に、テスト環境でjavaからinsert、update文を呼んだところ、10秒くらいでした。

この結果から、開発環境とテスト環境で環境に差異があると思い調べています。
JDBC Thin Driverの違いに問題があるのではないかと思うのですが、調べ方がわかりません。
(下記の2つの方法を試しましたが、同じojdbc14.jarに対して、違う結果が返ってきました。)
コード:

1つ目:使用しているojdbc14.jarの拡張子をzipに変え、ojdbc14.zipを解凍して中にある
「/META-INF/MANIFEST.MF」ファイル内にはJDBC Driver Versionは「9.0.2.0.0」と書いてありました。

2つ目:javaプログラムの中で「connection.getMetaData().getDriverVersion() 」を出力したら、
JDBC Driver Versionは「9.2.0.1.0」でした。



正しいJDB Thin Driverのバージョンの調べ方と、insert、update文が遅くなる原因について心当たりのある方はご教授願います。


[ メッセージ編集済み 編集者: ノヴァ 編集日時 2006-04-14 19:53 ]
せん
ぬし
会議室デビュー日: 2002/03/04
投稿数: 397
投稿日時: 2006-04-14 22:32
1)開発環境/テスト環境ともにハードウェアは全く同じなのでしょうか?
2)AP/DB は同一サーバ内にあるのでしょうか?それとも AP/DB毎にサーバが
  1台ずつの開発環境/テスト環境あわせて4台の構成なのでしょうか?
3)Tomcat/Oracle/OSの設定は開発環境/テスト環境全て一緒なのでしょうか?
4) 1秒/10秒の差が発生するのは毎回でしょうか?
5)開発環境/テスト環境の DB のデータ量は同一なのでしょうか?

ざっと、疑問におもった項目を述べてみました。
ノヴァ
会議室デビュー日: 2006/03/31
投稿数: 14
投稿日時: 2006-04-16 13:08
せんさんのご質問にお答えします。

引用:

1)開発環境/テスト環境ともにハードウェアは全く同じなのでしょうか?


はい。同じです。

引用:

2)AP/DB は同一サーバ内にあるのでしょうか?それとも AP/DB毎にサーバが
  1台ずつの開発環境/テスト環境あわせて4台の構成なのでしょうか?


すべて分けてあるので、計4台の構成です。

引用:

3)Tomcat/Oracle/OSの設定は開発環境/テスト環境全て一緒なのでしょうか?


ここが一番大きな問題かもしれませんが、全て一緒であるかどうか全ては確認しておりません。(テスト環境は、APサーバ、DBサーバでそれぞれ管理者がいて、それぞれが設定をしているため、細かなところは異なっていると思われます。)
たとえば、javaのヒープ領域の設定をテスト環境では行っていて、開発環境では行っていない。などが挙げられますね。

引用:

4) 1秒/10秒の差が発生するのは毎回でしょうか?


はい。毎回です。

引用:

5)開発環境/テスト環境の DB のデータ量は同一なのでしょうか?


スキーマが所有するオブジェクトのデータ量は同じにしております。
テスト環境のデータベースには、他のシステムのスキーマも存在する可能性がありますので、データベースサーバー全体のデータ量となると異なっている可能性もあります。

以上、宜しくお願いします。
せん
ぬし
会議室デビュー日: 2002/03/04
投稿数: 397
投稿日時: 2006-04-16 14:27
引用:

引用:

2)AP/DB は同一サーバ内にあるのでしょうか?それとも AP/DB毎にサーバが
  1台ずつの開発環境/テスト環境あわせて4台の構成なのでしょうか?


すべて分けてあるので、計4台の構成です。


ならば、ネットワーク構成で、開発環境/テスト環境に違いはありませんか?


引用:


引用:

3)Tomcat/Oracle/OSの設定は開発環境/テスト環境全て一緒なのでしょうか?


ここが一番大きな問題かもしれませんが、全て一緒であるかどうか全ては確認しておりません。(テスト環境は、APサーバ、DBサーバでそれぞれ管理者がいて、それぞれが設定をしているため、細かなところは異なっていると思われます。)
たとえば、javaのヒープ領域の設定をテスト環境では行っていて、開発環境では行っていない。などが挙げられますね。


なら、まずはそこを確認すべきではありませんか?それらを全て確認しない以上、部外者たる我々には状況はわかりません。
というか管理者がいるのなら、まず管理者全員でこの問題を共有して原因を探るべきです、掲示版に質問するまえに。

引用:

引用:

5)開発環境/テスト環境の DB のデータ量は同一なのでしょうか?


スキーマが所有するオブジェクトのデータ量は同じにしております。
テスト環境のデータベースには、他のシステムのスキーマも存在する可能性がありますので、データベースサーバー全体のデータ量となると異なっている可能性もあります。



ってことは、テスト環境は他のシステムと共有しているというわけですね。
テスト環境が遅いのは単純に負荷によるものではないのですか?
ノヴァ
会議室デビュー日: 2006/03/31
投稿数: 14
投稿日時: 2006-04-16 23:18
せんさん、お返事ありがとうございます。

引用:

ならば、ネットワーク構成で、開発環境/テスト環境に違いはありませんか?


違いがあるかどうか、調べてみます。

引用:

なら、まずはそこを確認すべきではありませんか?それらを全て確認しない以上、部外者たる我々には状況はわかりません。
というか管理者がいるのなら、まず管理者全員でこの問題を共有して原因を探るべきです、掲示版に質問するまえに。


確かにおっしゃるとおりです。
ただ現実問題として納品までの時間がなかったため、土日で少しでも情報を得られればと思い、掲示板にのせました。
また、AP管理者・DB管理者ともにこの問題について情報共有はしております。

引用:

ってことは、テスト環境は他のシステムと共有しているというわけですね。
テスト環境が遅いのは単純に負荷によるものではないのですか?


今回の件は、テスト環境DBに対してinsert文を発行した時に、javaから実行すると処理が遅いというものです。sqlplusで実行した時は問題ない処理速度だったため、DBサーバの負荷には問題がないものと考えております。
上記の現象でもDBサーバの問題ということもあるのですか?
せん
ぬし
会議室デビュー日: 2002/03/04
投稿数: 397
投稿日時: 2006-04-17 00:22
引用:

引用:

ってことは、テスト環境は他のシステムと共有しているというわけですね。
テスト環境が遅いのは単純に負荷によるものではないのですか?


今回の件は、テスト環境DBに対してinsert文を発行した時に、javaから実行すると処理が遅いというものです。sqlplusで実行した時は問題ない処理速度だったため、DBサーバの負荷には問題がないものと考えております。
上記の現象でもDBサーバの問題ということもあるのですか?



無いものと考えるじゃなくて、実際ない事を確認しないと話は始まりません。
ついでにいいますが、sqlplus はリモートである開発/テスト両サーバからそれぞれの
DB サーバに接続して実行したのですよね?
ローカルから実行しての結果であれば、今回の構成では前提として全く成り立ちませんよ。
1

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