Повышение производительности при использовании Java в Oracle - PullRequest
3 голосов
/ 27 июля 2011

Приветствую всех,

Несколько дней назад я столкнулся с возможностью использования Java в Oracle. С тех пор как я задаюсь вопросом о возможность написания статических методов в Java, заменяя обычную логику PL / SQL.

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

Ответы [ 3 ]

10 голосов
/ 27 июля 2011

При принятии решения о переходе от PL / SQL к Java-коду возникнут накладные расходы.

Хотя я не очень сторонник внедрения бизнес-логики в PL / SQL, я видел, что слишком много компаний делают это, включая мою собственную.

«Производительность» при этом не зависит от того, следует ли использовать static методы. Например, вам может понадобиться объявить массив для сортировки значений и, в зависимости от значений, получить дополнительные результаты из базы данных в другом запросе.

IMO, я бы добавил бизнес-логику в свое приложение, а не инвестировал в PL / SQL. Это также помогает обеспечить переносимость СУБД, а не вступительный взнос.

6 голосов
/ 27 июля 2011

Это зависит !Это два языка для различных целей !

Какие операции вы хотите выполнить?

  • Каждые операции, коснувшиеся слой данных (я знаю, что это спорный вопрос)
  • Массивная Sql операции с большой обработкой данных (массовые операции)
  • Работу можно легко выполнить в Pl / Sql
  • Вы пишете код, который строго привязан к типам данных Sql?
  • Отслеживает отношения между кодом и зависимым БДобъекты

В этом случае я считаю Pl / SQL лучшим выбором для производительности .

Внимание, я написал PL / SQL:

  • PL как язык процедур (второй выбор)
  • SQL как язык запросов данных (первый выбор)

Мощь этих двух языков, строго связанных в Oracle, позволяет вам писать приложения, которые получают доступ к данным в Oracle быстрее, *1038* и проще, чем на любом другом языке.


Вам нужно:

  • Операции операционной системы
  • Операции с каталогами и файлами
  • Операции с массивными письмами
  • Сетевые операции
  • Другие вещи, которые вы не можете сделать в:
    • SQL (1-й выбор)
    • PL (2-й выбор)
  • написать код для повторного использования в архитектуре, как Enterprise Java Beans
  • написать код для повторного использования в другом месте

В этом случае я думаю Java - лучший выбор, третий вариант в Oracle.


Но Я не изобретаю колесо , эта информация в значительной степени доступна и подтверждена Эксперты Oracle , такие как Том Кайт и др.

Просто полезная ссылка для поиска:

2 голосов
/ 27 июля 2011

Я думаю, что это может быть приемлемо, если вы храните операции CRUD как хранимые процедуры.Если вы используете какой-либо каркас ORM, вы можете отобразить SP.Как правило, база данных является более стабильной частью приложения.Приложение может быть реорганизовано или заменено, но база данных не меняется (это только мой опыт).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...