Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java Stored Procedure Vs PL/SQL Stored Procedure

In Oracle DBMS, which is better performance, calling a java stored procedure from another pl/sql stored procedure or calling a pl/sql stored procedure from another pl/sql stored procedure.

By the way I have a loop in my pl/sql procedure that will call the java procedure multiple times (i.e. my code is flipping between PL/SQL and Java Stored Procedures), so does this slow down the performance)?

like image 343
Khalid Galal Avatar asked Jul 25 '11 20:07

Khalid Galal


People also ask

What is the difference between procedure and stored procedure in PL SQL?

PL/SQL is a block-structured language that enables developers to combine the power of SQL with procedural statements. A stored procedure in PL/SQL is nothing but a series of declarative SQL statements which can be stored in the database catalogue. A procedure can be thought of as a function or a method.

Is stored procedure SQL or PL SQL?

The PL/SQL stored procedure or simply a procedure is a PL/SQL block which performs one or more specific tasks. It is just like procedures in other programming languages. The procedure contains a header and a body.

Is Java faster than Plsql?

Java is much faster than PL/SQL.

What is Java stored procedure in Oracle?

A Java Stored Procedure is a procedure coded in Java (as opposed to PL/SQL) and stored in the Oracle database. Java Stored procedures are executed by the database JVM in database memory space. Java Stored Procedures can be developed in JDBC or SQLJ. Interfacing between PL/SQL and Java are extremely easy.


1 Answers

Any switch from one language to another will involve an overhead (it might be small but it'll still be there). If it's in a loop it will be accentuated.

Keep it simple and if you can stick to PL/SQL then do so.

Tom Kyte (Oracle Corporation Vice President and Guru) has a mantra which seems fitting to repeat here:

(Reference: http://tkyte.blogspot.com/2006/10/slow-by-slow.html)

  • You should do it in a single SQL statement if at all possible.
  • If you cannot do it in a single SQL Statement, then do it in PL/SQL.
  • If you cannot do it in PL/SQL, try a Java Stored Procedure.
  • If you cannot do it in Java, do it in a C external procedure.
  • If you cannot do it in a C external routine, you might want to seriously think about why it is you need to do it…
like image 88
Ollie Avatar answered Oct 18 '22 08:10

Ollie