2012-01-19 80 views
3

这是一个直截了当的问题:你知道Oracle存储过程是否比Oracle数据库中的PL/SQL慢?Oracle存储过程比PL/SQL慢吗?

我们已经将存储过程从PL/SQL迁移到Java来进行基准测试,它大约需要PL/SQL时间的两倍。这也是你的经历吗?

谢谢。

+0

这里见我的回答: http://stackoverflow.com/questions/6821841/java-stored-procedure-vs-pl-sql-stored-procedure/7124055#7124055 – Ollie

+0

你有什么理由迁移代码到Java? (我假设你不是基准测试) – tbone

+0

@Juan这也是我的经验。我尝试了几次使用Java存储过程,并且从未看到任何性能改进。 –

回答

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 Stored Procedure Vs PL/SQL Stored Procedure

至于一旦上下文切换性能已经发生了,你的基准会给你最好的答案,但FWIW,如PL/SQL是如此紧密地在Oracle数据库中整合它应该表现得比较好如果你正在获取数据或与数据库进行交互,如果你纯粹操纵已获取的数据,那么存储的Java代码将取决于你对数据做了什么,并且你的基准测试会告诉你答案。

1

是的。 Java一直是该块中最胖,最慢的孩子。

没有任何理由从99%的pl/sql切换到java。

我使用java为我需要的几个实例。