Когда следует использовать хранимые процедуры Java с базой данных Oracle ... каковы недостатки? [закрыто]

Извините, но на Java нет действительно «свободного» или «распоряжающегося» эквивалента.

Лучшее, что вы можете сделать, это просто установить объект в null (удаляет ссылку). Затем явным образом сообщите сборщику мусора, что вы собираетесь rambo (его где-то в java.lang.Runtime).

13
задан minty 16 September 2008 в 07:29
поделиться

7 ответов

В мире Oracle общий порядок разработки должен быть:

Везде, где возможно делают это просто с SQL. При необходимости в больше, чем SQL делает это с МН / SQL. Если Вам нужно что-то, что МН / SQL не может сделать, затем использовать Java. Если все остальное приводит использование к сбою C. Если Вы не можете сделать этого с C, назад медленно далеко от проблемы....

хранимые процедуры пуазейли / хранимые процедуры SQL являются отличным способом переместить Вашу бизнес-логику в слой, который будет доступен с помощью любой технологии интеграции. Бизнес-логика в Пакете (не пишут одинокие Функции и Процедуры - они будут расти со временем неуправляемым способом), может быть выполнен Java, C#, МН / SQL, ODBC и так далее.

пуазейль / SQL являются самым быстрым способом бросить вокруг огромных блоков данных за пределами чистого SQL. Функции "Bulk Binding" означают, что это работает очень хорошо с механизмом SQL.

хранимые процедуры Java являются лучшими для создания функциональности, которая взаимодействует с сетевой или операционной системой. Примеры были бы, послав электронные письма, данные FTP'ing, произведя к текстовым файлам и архивировав его, выполнив командные строки хоста в целом.

я никогда не должен был кодировать C при работе с Oracle, но по-видимому это могло использоваться для интеграции с приложениями прежней версии.

18
ответ дан Rob Paterson 16 September 2008 в 07:29
поделиться
  • 1
    I' d настоятельно рекомендуют людям, смотрящим на Семантический Блок приложений Входа перед Регистрирующимся Блоком приложений. Преимущества являются существенными. – Grigori Melnik 22 May 2013 в 18:45

Только, когда Вы не можете выполнить в нем МН / SQL (или МН / SQL оказывается слишком медленным, который был бы довольно редок, чтобы я верил).

Как тематическое исследование... У нас была единственная хранимая процедура Java, работающая в производстве (Oracle 9i), это было первоначально записано в Java, потому что в то время, когда мы думали, Java был прохладен, Что-то, о чем я давно передумал. Так или иначе. Однажды, катастрофические отказы DB, после того, как это перезагрузит SP Java, не работают. После очень назад и вперед с поддержкой оракула, они действительно не знают то, что проблема, и единственные предложения, которые они имеют, включают много времени простоя. Что-то, что не было опцией. 30 минут спустя я переписал SP Java в МН / SQL.

Это теперь, работает быстрее, является оракулом "собственный компонент", совместно использует тот же процесс развертывания как другие объекты и легче отладить.

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

11
ответ дан Matthew Watson 16 September 2008 в 07:29
поделиться
  • 1
    таким образом, я приезжаю, ища вход лучших практик.. и я получаю некоторый корпоративный продукт, который пихают вниз мое горло? lol серьезно? – abbood 14 May 2014 в 07:14

Преимущества:

  • Может совместно использовать идентичную прикладную логику в клиенте и базе данных
  • Доступ к API Java. Не упустите, какая версия Java каждый поддержка БД - я полагаю, что 10 г только поддерживают 1.4 (что означает на моей работе, мы должны быть очень осторожными, так как наша основная кодовая база недавно переместилась в 1,5).

Недостатки:

  • хранимые процедуры Java, делающие большой доступ к базе данных, могут быть довольно медленные
  • Тяжелее для развертывания кода
1
ответ дан Steve Bosman 16 September 2008 в 07:29
поделиться

Java позволяет записать нейтральный в отношении базы данных код. Это позволяет Вам снова использовать существующий код и существенно повышать производительность.

Одна вещь я нахожу, что Хранимые процедуры Java, полезные для, являются Файлом IO. Java имеет намного более богатый набор Файла, возможности IO, позволяя разработчикам удалить файлы, добавляют каталоги, и так далее, по сравнению с пакетом Oracle UTL_FILE.

2
ответ дан dogbane 16 September 2008 в 07:29
поделиться
  • 1
    Немного конкретного Apache Log4J, но имеет некоторые полезные биты. – Nathan Hartley 2 June 2011 в 17:46

Я использовал встроенный Java Oracle для двух проблем:

1), Чтобы сделать процедуру PLSQL, которая увеличивает объем результатов запроса в текстовом файле и отправляет его по FTP. Этот файл был очень большим, и я использую Java для Архивирования его.

2) В приложении клиент-сервер с прямым подключением с DB, для сравнения пользователя, отправленного пароль в приложение (не пароль пользователя DB) хешированный с MD5, так, чтобы пароль не переместился сетью в простом тексте. Я не уверен, было ли это лучшим решением для этой проблемы, я собираюсь спросить его теперь.:)

1
ответ дан Telcontar 16 September 2008 в 07:29
поделиться

Основным преимуществом является доступ к API и функции языка, не найденные в МН / SQL. Например, я использовал их для обработки регулярного выражения, управления файлом/каталогом и парсинга XML.

существует много недостатков:

  • поддержка инструмента Poor
  • Отсутствие управления DBA JVM
  • часто не обучаются в Java. Для поддержки производственного кода, который необходимо будет или или дать большему количеству обучения DBA или нанять обученный Java персонал поддержки

, Перемещение Java к серверу приложений часто является лучшим подходом, поскольку это противодействует недостаткам. Существует превосходная поддержка инструмента, большое управление JVM и существует "куча" людей, обученных в серверах распространенного приложения, настолько находящий персонал поддержки легок. Существуют альтернативные издержки хита производительности, переезжающего от базы данных, но сохраняющий Java близко к базе данных не дает Вам усиления высокой эффективности так или иначе.

Вам определенно нужна причина использовать Java в базе данных по a) МН хранимым процедурам / хранимым процедурам SQL или b) Java вне базы данных.

4
ответ дан darreljnz 16 September 2008 в 07:29
поделиться
  • 1
    Да, серьезно. It' s свободный и очень хорошо соединенный. Никто не вынуждает Вас использовать его. Но если Вы прочитаете документы без предубеждения, Вы изучите некоторые хорошие методы, неважно, что Вы решаете использовать в конце. – Doug L. 18 May 2014 в 06:56

Ответ НИКОГДА . Если необходимо записать программы для загрузки, или обрабатывать данные необходимо сделать это за пределами уровня данных от другого компьютера в сети.

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

0
ответ дан 16 September 2008 в 07:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: