2012-01-19 3 views
3

Это простой вопрос: знаете ли вы, что хранимые процедуры Java медленнее PL/SQL в базе данных Oracle?Являются ли хранимые процедуры Java медленнее, чем PL/SQL в Oracle?

Мы перенесли хранимую процедуру из 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 всегда была самым толстым, самым медленным ребенком на блоке.

Нет причин переключаться с pl/sql на java на 99% того, что вы могли бы сделать.

Я использую java для нескольких случаев, в которых я нуждаюсь.