私の職場では、常に "アプリケーションサービス層のすべてを実行する"と "DBプロシージャのすべてを実行する"とがあります。アプリケーション - > DBコールはどれくらいの費用がかかりますか? (つまり、Java JDBC - > Oracle)?
私が得たのは、アプリケーションサーバーとDB通信が頻繁に通信することはかなり高価な操作です。私の質問は - どれくらいの費用がかかりますか?
私はこの例を持っているとしましょう。私はJavaアプリケーションのユーザーのリストを持っています。それらのそれぞれに特定の属性をバインドする必要があります。 20人のユーザーと20個の属性が格納されているとします。 1コールを作成するのではなく、パラメータ(employee_id、attribute_value)を使用してOracleプロシージャを20回コールし、すべてのemployee_idsと一致するattribute_valuesを一度に送信するのはどれだけコストがかかりますか?
編集:
[OK]を、多分私は明らかに私の場合を述べるなかった - 私は少しそれを「dumbify」よ:)
それは、n個のOracleへの呼び出しを行うためにどのようにはるかに高価です1つのOracleプロシージャを呼び出すのではなく、1つのinsertを実行するプロシージャです(n insertは基本的に1回insert n回ループします)。 1回ではなくn回の呼び出しでそれを行う理由は、初心者のために、単純なデータ型を入力オブジェクト(つまりinteger、varchar2など)を使ってn個のプロシージャ呼び出しを考えるループをJavaで記述する方が簡単ですJavaからOracleに配列を渡す方法について説明します。
ベンチマークしたか測定しましたか?これはおそらく、特定のシステムの多くに依存します(たとえば、アプリケーションと同じマシン上のデータベースサーバー)。 –
Uhm、no。私たちはHTTP応答の持続時間を測定していますが、それ以外の統計はありません。 また、Oracle JDBCドライバを使用してTomcat 5.5上でSpringベースのJava Webアプリケーションを実行し、Oracle 10 DBに接続しています。残念なことに、私はアプリとDBが別々のマシンにあるという事実以外に、多くの助けになる他の技術的事柄についてあまり知らない。 – eagerMoose