3

これは簡単な質問です。Java ストアド プロシージャが Oracle データベースの PL/SQL より遅いかどうか知っていますか?

ストアド プロシージャを PL/SQL から Java に移行してベンチマークを実施しましたが、PL/SQL の約 2 倍の時間がかかりました。これも経験ですか?

ありがとう。

4

2 に答える 2

6

言語を切り替えるたびに、コンテキストスイッチと呼ばれるオーバーヘッドが発生します。

http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:60122715103602

SQLとPL/SQLの間の移動にはオーバーヘッドさえあり、それらは非常に緊密に統合されています。したがって、JavaとPL / SQLの間の移動は、純粋なPL/SQLよりも常に効率が低くなります。

JavaストアドプロシージャとPL/SQLストアドプロシージャ

コンテキストの切り替えが行われた後のパフォーマンスについては、ベンチマークで最良の答えが得られますが、FWIWは、PL / SQLがOracleデータベース内に緊密に統合されているため、データをフェッチする場合、またはDBとの対話では、すでにフェッチされたデータを純粋に操作している場合、それはデータに対して何をしているかに依存し、ベンチマークが答えを教えてくれます。

于 2012-01-19T12:01:48.437 に答える
1

はい。Java は常に、ブロック内で最も太く、最も遅い子供でした。

できることの 99% を pl/sql から Java に切り替える理由はありません。

必要ないくつかのインスタンスには Java を使用します。

于 2012-08-08T16:44:08.393 に答える