powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Экземпляр класса java, как in out nocopy параметр
8 сообщений из 8, страница 1 из 1
Экземпляр класса java, как in out nocopy параметр
    #40117805
Lemkoleg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, есть ли возможность передать экземпляр класса java, как in out nocopy параметр хранимой процедуры, которая заполнит поля даного класса. Цель: заполнить поля класса, без созданиии экземпляра обьектного типа оракл, в целях экономии памяти и времени на возврат данных полей.
...
Рейтинг: 0 / 0
Экземпляр класса java, как in out nocopy параметр
    #40117819
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lemkoleg
Подскажите, есть ли возможность передать экземпляр класса java, как in out nocopy параметр хранимой процедуры, которая заполнит поля даного класса. Цель: заполнить поля класса, без созданиии экземпляра обьектного типа оракл, в целях экономии памяти и времени на возврат данных полей.


Не очень понятно. Как Вы куда-то в PL/SQL собираетесь передавать "нечто", что даже не является объектом типа Oracle.

Хотя, в принципе и в данном случае проблем нет (можно обойти): Экземпляр любого объекта это просто последовательность битиков и байтиков, т.ч. передавайте RAW и будет Вам счастье (нет).
...
Рейтинг: 0 / 0
Экземпляр класса java, как in out nocopy параметр
    #40117831
Lemkoleg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,
Нет. Чуть не так. Как раз и нужно связать обьект оракл с классом java. В java нужно сождать экземпляр этого класса, передать ссылку , на этот экземпляр,в plsql. Если это возможно
...
Рейтинг: 0 / 0
Экземпляр класса java, как in out nocopy параметр
    #40117839
dmdmdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЦель: заполнить поля класса, без созданиии экземпляра обьектного типа оракл

Эта цель вполне достижима вызовом PLSQL procedure(java method) без всяких объектных типов Oracle.

авторв целях экономии памяти и времени

Тот факт, что экономия существует и реально чему-то помогает, еще надо доказать.
...
Рейтинг: 0 / 0
Экземпляр класса java, как in out nocopy параметр
    #40117842
Lemkoleg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dmdmdm
авторЦель: заполнить поля класса, без созданиии экземпляра обьектного типа оракл


Эта цель вполне достижима вызовом PLSQL procedure(java method) без всяких объектных типов Oracle.

авторв целях экономии памяти и времени

Тот факт, что экономия существует и реально чему-то помогает, еще надо доказать.

Мне нужно наоборот - вызов процедуры из java. Экономия заключается в том, что: если в классе сотня-другая полей, то возврат данных - это цикл заполнения каждого поля путем перебора из результатирующего ексемляра обьекта SQL. Плюс, во время выполния, в памяти создаются и находядтся два экземпляра: экземпляр java и экземпляр PL SQL. Соответственно и их поля.
...
Рейтинг: 0 / 0
Экземпляр класса java, как in out nocopy параметр
    #40117858
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMHO

Подозреваю, что для "мельких объектов" (сотни и даже тысячи байт), накладные расходы на сериализацию/десериализацию при передачи будет ничтожно малы, по сравнению с затратами на САМ ВЫЗОВ и соответственно передачу управления межу PL/SQL Engine и Java Engine.

В общем, в большинстве случаев, экономия памяти и времени будет чисто мифической. Тут скорее надо оптимизировать кол-во вызовов (переключений) между PL/SQL и Java

Для java object никто не мешает реализовать "ссылки" самому. Создать какой нибудь array или HashMap<Integer, Object>, сохранять туда объекты присваивая им уникальный Id/Handle. А дальше при вызове своих get'ов / set'ов уже вместо сереализации/десериалиации просто передавать свой Id/Handle

Для каких нибудь сложных структур (например развесистое дерево) на PL/SQL, смотреть как они реализованы.
...
Рейтинг: 0 / 0
Экземпляр класса java, как in out nocopy параметр
    #40117859
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lemkoleg
если в классе сотня-другая полей, то возврат данных - это цикл заполнения каждого поля путем перебора из результатирующего ексемляра обьекта SQL. Плюс, во время выполния, в памяти создаются и находядтся два экземпляра: экземпляр java и экземпляр PL SQL. Соответственно и их поля.


Если сотня-другая полей одного объекта - для современного процессора это "ни о чем". Затраты на тупую сериализацию (если конечно прикладные программисты не сделали ее особо извращенным способом) по сравнению с переключением контекста будут малозаметны.

Проблемы могут быть, если в один объект кто-то "жестко" захардкодил развесистое дерево, не подумав, дать интерфейс доступа к частям. Например XML DOM. Нормальные реализации не выполняют передачу всего дерева одним целым, а дают отдельные ссылки/handle для доступа к каждой конкретной node, attribute и так далее. Т.е. дерево большое, но вот в любой момент времени работать/передавать нужно достаточно компактные структуры.
...
Рейтинг: 0 / 0
Экземпляр класса java, как in out nocopy параметр
    #40117968
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lemkoleg
Цель: заполнить поля класса, без созданиии экземпляра обьектного типа оракл, в целях экономии памяти и времени на возврат данных полей.

Кто придумал эту цель и как он измерил траты времени и памяти в том и в другом случае?

Ответ "Вы (или Ваш начальник) помусолив палец и поплевав в потолок" означает, что целесообразнее всего оставить эту задачу и заняться чем-нибудь полезным.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Экземпляр класса java, как in out nocopy параметр
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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