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

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

Мы перенесли хранимую процедуру с PL/SQL на Java только для того, чтобы протестировать ее, и это занимает примерно в два раза больше времени, чем PL/SQL. Это тоже ваш опыт?

Спасибо.


person Juan    schedule 19.01.2012    source источник
comment
См. мой ответ здесь: stackoverflow.com/questions/6821841/   -  person Ollie    schedule 19.01.2012
comment
по какой причине вы переносите код на Java? (Я предполагаю, что вы не проводите бенчмаркинг для этого)   -  person tbone    schedule 19.01.2012
comment
@ Хуан Это был и мой опыт. Я пытался использовать хранимые процедуры Java несколько раз и никогда не видел улучшения производительности.   -  person Jon Heller    schedule 20.01.2012


Ответы (2)


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

( 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, что должен работать лучше, чем сохраненный код Java, если вы извлекаете данные или взаимодействуя с БД, если вы просто манипулируете уже извлеченными данными, это будет зависеть от того, что вы затем делаете с данными, и ваш тест даст вам ответ.

person Ollie    schedule 19.01.2012

да. Java всегда был самым толстым и медленным ребенком в этом районе.

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

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

person safedba    schedule 08.08.2012