Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / PL/SQL or Java stored procedures / 24 сообщений из 24, страница 1 из 1
15.03.2003, 11:05
    #32120622
Jaguar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/SQL or Java stored procedures
Вопрос собсна в чем. Вот есть хранимые процедуры на Java и есть на PL/SQL, везде пишут что Джававские будут работать медленнее... и все такое... но хотелось бы узнать положительные стороны Java stored procedures, ведь они должны быть, раз в Оракле их ввели. И если можно приведите пример ситуации в которой выгоднее использовать Java stored procedures.
Thanks
...
Рейтинг: 0 / 0
15.03.2003, 11:44
    #32120627
AI
AI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/SQL or Java stored procedures
Все просто - PL/SQL лучше использовать для обращений к базе данных, java - при необходимости вести много вычислений, не связанных с базой. А вообще-то на чем умеешь работать - на том и работай. А то, что java или PL/SQL работают медленнее - зависит от задачи и, как всегда, от рук программиста или от горла пропагандиста.
...
Рейтинг: 0 / 0
15.03.2003, 15:00
    #32120647
Black Jaguar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/SQL or Java stored procedures
Ок, я попробую описать задачу, а вы уж подскажите как быть....
Java приложение (прогр1), на запрос др. Java приложения (прогр2), должно обратиться к БД. (предварительно разобрав XML запрос) и получить список адресов документов информация о которых храниться в таблицах БД. Притом запрос насчитывает в себе пару десятков полей характеристик документа (плюс потенциально логические операции над этими полями). и в результате "прогр1" должна отправить "прогр2" XML ответ содержащий в себе этот список (потенциально и некоторые поля описания документов).
Одним словом такая адвансед электронная библиотека с поисковиком.

мое видение решения проблемы пока выглядит примерно так:
"прогр1" разбирает запрос и вызывает хранимую процедуру (читай функцию) предавая ей параметры запроса. Процедура, в зависимости от параметров, составляет запрос(ы) и возвращает результат.

Очень жду ваших предложений и коментариев, т.к. личного опыта однозначно не хватает.
...
Рейтинг: 0 / 0
17.03.2003, 09:48
    #32120892
Les
Les
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/SQL or Java stored procedures
из Канады говорят что джава не лучше. Просто это мейнстрим и будущее де факто. Кстати в форсе вроде как делали переводчик из PLSQL в Жабу, как плугин к оракловом жаба девелоперу
...
Рейтинг: 0 / 0
17.03.2003, 10:42
    #32120937
galisha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/SQL or Java stored procedures
1.насколько следует из доки по Oracle, Java stored procedure должно работать не медленнее, чем PL/SQL, т.к. Java код компилируется в C код, а затем и в машинный (native). Т.е. скорость д.б. приличной

2.-ое преимущество состоит в том, что получаешь ОО язык+библиотеки J2SE 1.2 в случае использования 8.1.7

3. Кроме JDBC на стороне сервера, можно применить SQLJ (если запросы не сильно динамические)
...
Рейтинг: 0 / 0
17.03.2003, 11:01
    #32120946
Delerium
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/SQL or Java stored procedures
Dokumentacija mozhet mhogo chevo govaritj. Jestj u nas bolshoi projekt, gde probovalji izpoljzovatj i Java stored procedures, no eto poluchilosj ochen medljeno. Kogda Java kod vineslji iz bazi, vsjo pashlo namnoga bistree. Jeslji nado obrabotavatj relational-data, togda, dumaju, lutshe izpoljzovatj PL/SQL - budjet bistree. A sdelatj object-oriented vichesljenjije v PL/SQL naabarot trudnjee, togda mozhno i izpoljzobatj Java.
...
Рейтинг: 0 / 0
17.03.2003, 15:30
    #32121268
galisha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/SQL or Java stored procedures
to Delerium:

1.хотелось бы узнать что выполняли Ваши хранимые процедуры, и как они это делали?

2.и заодно встречный вопрос: м.б. ресурсов на сервере было маловато?
Java - то, она требует просторов
...
Рейтинг: 0 / 0
17.03.2003, 16:16
    #32121339
softy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/SQL or Java stored procedures
В Java вообще есть определённого рода "проблема" при работе с памятью.
Общеизвестно что по спецификации Java - в Java нет непосредственной возможности работы с памятью, такой как например в C/C++.
Возвращением памяти в Java занимается так называемый garbage collection - "сборщик мусора". Он не всегда её возвращает вовремя.
Я вообще бы не советовал ставить JServer в Oracle. Тяжеловато как-то он потом работает.
В крайнем случае лучше поставь jdk отдельно, реализуй свою задачу через приложения, сервлеты.
...
Рейтинг: 0 / 0
17.03.2003, 16:16
    #32121342
Delerium
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/SQL or Java stored procedures
Answer to galisha:

1) Java u nas izpoljzovalji dlja obrabotki davoljna slozhnih struktur: chitalja faili iz failovai sistemi, obrabotavala eti dannii ("derevjaniji" strukturi) i zaljiji danniji v tabljicah. Kogda tot zhe kod vinesklji iz Oracle v Solaris environment, vsjo zarabotalo paru raz bistree. Kak vsjo eto delalosj njemagu skazatj, kodom zanjimalasj kompanjija developerov.

2) V to vremja server bil 4 x 750MHz Sparc'i, ~4GB RAM i Oracle serveru otdalji vsje resursi servera.

Znakomij iz kompanjiji developerov razskazival, shto po evo mnjejiju java rabotala bistree dazhe na PC (P3, 256MB ram) chem v nutri Oracle na SPARC Solaris ...


Vsjo menjajetsja, no prezhdje bi ja nachal shto njibudj razrabativatj na Java v Oracle, ja bi chotka protestiroval performance ...
...
Рейтинг: 0 / 0
17.03.2003, 16:30
    #32121357
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/SQL or Java stored procedures
Стратегически, Оракле советует вынести всю
жаву на сервер, что и сам делает (см. 9иАС).

Таким образом, выбора два:

-- жава на мидле-тиер (например, 9иАС)
-- пл/скл в Оракловском нутре.

Как уже было указано во многих дискуссиях,
критерии выбора могут быть:

-- наличие (или отсутствие) опыта в жаве/плскл
-- скорость против обьектно-ориентности
-- необходимость интеграции в внешними ресурсами
-- мнение руководства
-- советы закадычного друга после третьей
-- итд

ЙЙ
...
Рейтинг: 0 / 0
17.03.2003, 18:13
    #32121454
galisha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/SQL or Java stored procedures
to Delerium:

спасибо за ответ,
как я понял, Вы использовали Java для файловой обработки из под JServer.
У меня такого опыта нет, из под JServer я пользовал Stored procedure и CORBA.
И особых тормозов не заметил, возможно не было серъезного объема данных.
Есть тут у меня серъезная задача, уже реализованная отдельным приложением, да руки не дойдут "засунуть" в JServer (кстати тоже на SunSparc). М.б. "select'ы и insert'ы" под JServer все-таки будут работать ХОРОШО ?! ;)

Хотелось бы уточнить, Java code был вынесен в Solaris на той-же машине, где и Oracle работает или вообще на другую машину? Любопытно.

to softbuilder@inbox.ru:

по ощущениям я не испытал каких-то тормозов из-за Garbage collector: проблемы и в C++ и в Java со сборщиком мусора IMHO принципиально одинаковы и рецепты одинаковы:
- не поддаваться ООП и не плодить много объектов
- аккуратно освобождать ресурсы

to javajdbc:

а что делать, если серверок дохлый и всего один (как обычно у наших клиентов, а) ?
тут-то как-раз JServer и поможет, IMHO
...
Рейтинг: 0 / 0
18.03.2003, 08:51
    #32121684
softy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/SQL or Java stored procedures
Я не знаток C/C++, но насколько я знаю, когда в тексте кода идёт что-то типа free() - в этот момент реально происходит освобождение памяти.
А в Java даже если есть локальные переменные, они по спецификации автоматически особождаются когда метод закончил работу - это всё естественно. Вопрос в том что реально память от локальных переменных после завершения метода не освобождается. Она освободится только после того как запуститься gc. А он запускается когда хочет. Его можно запускать вручную, но возможна ситуация , когда при интенсивных запросах памяти gc будет не успевать освобождать.
...
Рейтинг: 0 / 0
18.03.2003, 10:04
    #32121734
Delerium
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/SQL or Java stored procedures
to galisa: snachala Java rabotala na toi zhe mashinje i namnoga lutshe chem v Oracle a potom perenjeslji i na drugoi server.

Komentiruja drugih sovetov: jeslji izpoljzovatj Java, njenado prinjatj shto Java server de facto dolzhen bitj Oracle iAS ... On zhe doroga stoit i ti dolzhen platitj za vsjakiji njenuzhniji gigabaiti koda :)

Shto kasajetsja garbage collector - vsje nje tak ploha, kak vigljadjit. Njenado dumatj, shto GC vipoljnjajetsja raz v mesjac i na eto vremja pamjatj budet zabita garbag'om :)
...
Рейтинг: 0 / 0
18.03.2003, 10:31
    #32121793
galisha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/SQL or Java stored procedures
to Delerium:

спасибо за информацию,
надеюсь в свою очередь быть полезным
...
Рейтинг: 0 / 0
18.03.2003, 10:45
    #32121820
MaxU
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/SQL or Java stored procedures
Код: plaintext
1.
2.
по ощущениям я не испытал каких-то тормозов из-за Garbage collector: проблемы и в C++ и в Java со сборщиком мусора IMHO принципиально одинаковы и рецепты одинаковы: 
- не поддаваться ООП и не плодить много объектов 
- аккуратно освобождать ресурсы 


во первых - в стандарте С++ ИМХО отсутствует понятие автоматической сборки мусора, а во вторых как уже сказали товарищи выше в Java практически нет возможностей ручного освобождения ресурсов, кроме запуска GC, т.е. "из пушки по воробьям"

> - не поддаваться ООП и не плодить много объектов
это как позвольте? если писать на С++ то следует использовать ОО подход, иначе писать нужно на С...

"отака фiгня малюки" (с) украинская народная мудрость...
...
Рейтинг: 0 / 0
18.03.2003, 17:29
    #32122359
galisha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/SQL or Java stored procedures
>во первых - в стандарте С++ ИМХО отсутствует понятие автоматической сборки мусора

в языке-то отсутствует, но сие не означает, что сборкой мусора никото не занимается. В зависимости от ситуации это выполняет Run-time код процесса, или же операционная система. Т.е. если "мусор" порождается внутри процесса, то сборкой занимается программа, если за процессом, то OS. (в грубом описании)

>а во вторых как уже сказали товарищи выше в Java практически нет возможностей ручного освобождения ресурсов, кроме запуска GC, т.е. "из пушки по воробьям"

не совсем так, есть метод finalize(), а можно не дожидаясь его вызова прямо закрывать ресурсы, что фактически и означает использования деструктора как в C++
кроме того, когда сборкой мусора управлет процесс (как в C++) аналогично JVM в своем адресном пространстве, то это бывает эффективнее, чем когда этим занимается OS

>это как позвольте? если писать на С++ то следует использовать ОО подход, иначе писать нужно на С...

да.да именно так. Тенденция бездумного порождения огромного количества объектов, и последующего их удаления ставит на колени хоть Java хоть пресловутый C++. Если Вы начнете писать мощный редактор, и будете генерить массу объектов, то кончится это тормозами, причем гидравлическими.

это Вам не это, это армия... ("ДМБ")
...
Рейтинг: 0 / 0
19.03.2003, 16:31
    #32123093
galisha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/SQL or Java stored procedures
похоже возвражений нету
Java победила ;)
...
Рейтинг: 0 / 0
19.03.2003, 17:17
    #32123147
softy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/SQL or Java stored procedures
"кроме того, когда сборкой мусора управлет процесс (как в C++) аналогично"

Можно поподробнее про процесс сборки мусора в С++?

Расскажу это знакомым сишникам с более чем 15-летним стажем - будет интересно выслушать их мнение о вас.
...
Рейтинг: 0 / 0
20.03.2003, 03:40
    #32123301
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/SQL or Java stored procedures
Исходя из постановки задачи (пост№3) 9ИАС пока не нужен.
Достаточно простой жвм с ждбс или оси драйвером.
Другое дело, что аппликация, похоже, будет и/о
лимитирована. Как всегда, выбор будет между
ООП жавы (вне Оракла) супротив скорости пл/скл.

ЙЙ
...
Рейтинг: 0 / 0
20.03.2003, 10:24
    #32123445
Denwer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/SQL or Java stored procedures
to galisha:

>по ощущениям я не испытал каких-то тормозов из-за Garbage collector: >проблемы и в C++ и в Java со сборщиком мусора IMHO принципиально >одинаковы и рецепты одинаковы:
>- не поддаваться ООП и не плодить много объектов
>- аккуратно освобождать ресурсы

Не совсем так, Garbage collector в Jave берет все таки некоторую часть ресурсов, НО. Проблема то не в недостаточности процессорного времени, а в том что действительно как сказал softbuilder@inbox.ru при интенсивных выполнениях программы при котором будем частое выделение памяти, Garbage collector не будет справляться в нужные сроки со своей работой. И таким образом может не хватать памяти для быстрой работы, при которой будет ожидание пока не освободиться нужный объем памяти. Но рецепт дан правельный. Даже это актуально и для С++, т.к. частое выделение освобождение памяти тоже отнимет у программы НЕМНОГО драгоценных ресурсов. но конечно не столько как Java. А сколько именно это уже зависит от конкретной реализации С++. Так например компиляторы от Borlanda (BuilderC++) в программе создают свой менеждер управления памяти, который работает немного побыстрее при частых выделениях и освобождениях. Так же можно дать еще один рецепт для ускорения С++. СОЗДАВАТЬ ОБЪЕКТЫ НЕ В ДИНАМИЧЕСКОЙ ПАМЯТИ А НА СТЕКЕ.

to softbuilder@inbox.ru:
>Можно поподробнее про процесс сборки мусора в С++?

А словам Страструпа поверишь?
-Существует много реализаций С++ с реализованным сборщиком мусора.

Да и к томуже С++ настолько гибок что реализовать Garbage collector не совсем то уж и проблема. Кстати существует много реализаций для С++ автоматических сборщиков мусора.
Например:http://www.cs.ukc.ac.uk/people/staff/rej/gc.html
(можешь дать это своим знакомым сишникам)
А как насчет Managet C++, там это коллектор встроен изначально.
...
Рейтинг: 0 / 0
20.03.2003, 11:06
    #32123502
softy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/SQL or Java stored procedures
Ну если вы наставиваете про сборщик мусора в C++ - я спрорить не буду.
Мне казалось из старых разговоров с сишниками, что такого безобразия как в Java там нет.
...
Рейтинг: 0 / 0
20.03.2003, 12:59
    #32123667
DimaR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/SQL or Java stored procedures
Мне казалось из старых разговоров с сишниками, что такого безобразия как в Java там нет.
Ну почему обязательно безобразия? Зачем крайности.

Немного офтопик.

У меня друг закоренелый Си плюс плюшник, (ОЧЕНЬ хороший специалист).
Когда я доказывал что С++ нельзя использовать для систем критичных к жизни и безопастности, именно из за возможностей С++ потенциально повышающих количество ошибок в коде, ему это не нравилось и он говорил что дело в умении программиста.
Но однажды он в какойто книжке Г.БУЧА по ООП, (я при это присутствовал) прочитал, что языки где используеться ручное динамическое (не помню точно формулировку) выделение памяти, нелзя использовать для программирования таких систем.
...
Рейтинг: 0 / 0
20.03.2003, 20:22
    #32124183
Scott Tiger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/SQL or Java stored procedures
При всей моей к Java :), критичные для жизни и здоровья людей программы лучше вообще не писать. Иначе рано умрёшь.

PS Опять я нажрался...
...
Рейтинг: 0 / 0
21.03.2003, 09:20
    #32124315
softy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
PL/SQL or Java stored procedures
Лично мне Java нравится именно как язык программирования, а не как реализация виртуальной машины. Я считаю ( и не только я), что Java наиболее точно соответствует модели ООП(в часности чем С++).
Но я достаточно критично отношусь к тому как реально Java себя проявляет в разных аспектах. Я считаю, что там где используется графика - не самое лучшее качество Java(имею ввиду не качество графики, а другие аспекты:скорость, ресурсы). Но применительно к сервлетам - очень положительное мнение, особенно использование JSP, реализация XML.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / PL/SQL or Java stored procedures / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]