Results 1 to 3 of 3
  1. #1
    Join Date
    Sep 2003
    Location
    Rio de Janeiro, Brazil
    Posts
    4

    Exclamation Unanswered: Performance: java called from a Java Stored Proc versus direct call

    We're having some integration problems here, but I think it's more due ignorance in correctly tunning Oracle then anything else.

    We are using webMethods as our integration server and inside our PL/SQL codes we make some calls to flows of the integrator, these flows are wrapped as java stored procedures.

    Reports say that calling the flow via PL/SQL, it takes about 6 seconds round-trip.

    By calling the same flow directly, via command line, it takes only 1 second.

    Is this a real reference? A java stored proc is really 6 times slower then a direct call to a java class/method? If yes, why so? If no, what could they be doing wrong?

    I'm not in the technical end of this issue, I only specified the system and the routines, but that's what is being reported, and for some reason, I'm not buying it.

    Thanks in advance.

  2. #2
    Join Date
    Sep 2003
    Location
    India
    Posts
    6

    Re: Performance: java called from a Java Stored Proc versus direct call

    PLSQL is the fastest code that could run on oracle database engine.

    Even though Oracle puts it as a built-in JVM that runs java stored procedures, JVM is running basically in a secluded memory space in the SGA. Also there are issues of JVM's method of running the byte code.. It is not JIT mode.

    I feel that you cannot bring the difference to less than 4 times, whatsoever optimized java code you would write ...

  3. #3
    Join Date
    Sep 2003
    Location
    Rio de Janeiro, Brazil
    Posts
    4
    Yeah... so there is really a big overhead when using Oracle's internal JVM?

    But, now that I'm thinking... it mustn't really be 6 times (or 4 times like u said) slower, but only some overhead on each call of the method... so it would be more precise to say, that when I call through PL/SQL it takes 6 seconds cuz there's a 5 second overhead which doesn't occur when the call is made directly to the JVM. Meaning, if a call should last 10min, in PL it would last 10min + 5 secs, and not 60min. Right?

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •