|
Экземпляр класса java, как in out nocopy параметр
|
|||
---|---|---|---|
#18+
Подскажите, есть ли возможность передать экземпляр класса java, как in out nocopy параметр хранимой процедуры, которая заполнит поля даного класса. Цель: заполнить поля класса, без созданиии экземпляра обьектного типа оракл, в целях экономии памяти и времени на возврат данных полей. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2021, 15:17 |
|
Экземпляр класса java, как in out nocopy параметр
|
|||
---|---|---|---|
#18+
Lemkoleg Подскажите, есть ли возможность передать экземпляр класса java, как in out nocopy параметр хранимой процедуры, которая заполнит поля даного класса. Цель: заполнить поля класса, без созданиии экземпляра обьектного типа оракл, в целях экономии памяти и времени на возврат данных полей. Не очень понятно. Как Вы куда-то в PL/SQL собираетесь передавать "нечто", что даже не является объектом типа Oracle. Хотя, в принципе и в данном случае проблем нет (можно обойти): Экземпляр любого объекта это просто последовательность битиков и байтиков, т.ч. передавайте RAW и будет Вам счастье (нет). ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2021, 15:56 |
|
Экземпляр класса java, как in out nocopy параметр
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev, Нет. Чуть не так. Как раз и нужно связать обьект оракл с классом java. В java нужно сождать экземпляр этого класса, передать ссылку , на этот экземпляр,в plsql. Если это возможно ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2021, 16:07 |
|
Экземпляр класса java, как in out nocopy параметр
|
|||
---|---|---|---|
#18+
авторЦель: заполнить поля класса, без созданиии экземпляра обьектного типа оракл Эта цель вполне достижима вызовом PLSQL procedure(java method) без всяких объектных типов Oracle. авторв целях экономии памяти и времени Тот факт, что экономия существует и реально чему-то помогает, еще надо доказать. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2021, 16:50 |
|
Экземпляр класса java, как in out nocopy параметр
|
|||
---|---|---|---|
#18+
dmdmdm авторЦель: заполнить поля класса, без созданиии экземпляра обьектного типа оракл Эта цель вполне достижима вызовом PLSQL procedure(java method) без всяких объектных типов Oracle. авторв целях экономии памяти и времени Тот факт, что экономия существует и реально чему-то помогает, еще надо доказать. Мне нужно наоборот - вызов процедуры из java. Экономия заключается в том, что: если в классе сотня-другая полей, то возврат данных - это цикл заполнения каждого поля путем перебора из результатирующего ексемляра обьекта SQL. Плюс, во время выполния, в памяти создаются и находядтся два экземпляра: экземпляр java и экземпляр PL SQL. Соответственно и их поля. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2021, 16:59 |
|
Экземпляр класса java, как in out nocopy параметр
|
|||
---|---|---|---|
#18+
IMHO Подозреваю, что для "мельких объектов" (сотни и даже тысячи байт), накладные расходы на сериализацию/десериализацию при передачи будет ничтожно малы, по сравнению с затратами на САМ ВЫЗОВ и соответственно передачу управления межу PL/SQL Engine и Java Engine. В общем, в большинстве случаев, экономия памяти и времени будет чисто мифической. Тут скорее надо оптимизировать кол-во вызовов (переключений) между PL/SQL и Java Для java object никто не мешает реализовать "ссылки" самому. Создать какой нибудь array или HashMap<Integer, Object>, сохранять туда объекты присваивая им уникальный Id/Handle. А дальше при вызове своих get'ов / set'ов уже вместо сереализации/десериалиации просто передавать свой Id/Handle Для каких нибудь сложных структур (например развесистое дерево) на PL/SQL, смотреть как они реализованы. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2021, 17:46 |
|
Экземпляр класса java, как in out nocopy параметр
|
|||
---|---|---|---|
#18+
Lemkoleg если в классе сотня-другая полей, то возврат данных - это цикл заполнения каждого поля путем перебора из результатирующего ексемляра обьекта SQL. Плюс, во время выполния, в памяти создаются и находядтся два экземпляра: экземпляр java и экземпляр PL SQL. Соответственно и их поля. Если сотня-другая полей одного объекта - для современного процессора это "ни о чем". Затраты на тупую сериализацию (если конечно прикладные программисты не сделали ее особо извращенным способом) по сравнению с переключением контекста будут малозаметны. Проблемы могут быть, если в один объект кто-то "жестко" захардкодил развесистое дерево, не подумав, дать интерфейс доступа к частям. Например XML DOM. Нормальные реализации не выполняют передачу всего дерева одним целым, а дают отдельные ссылки/handle для доступа к каждой конкретной node, attribute и так далее. Т.е. дерево большое, но вот в любой момент времени работать/передавать нужно достаточно компактные структуры. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.12.2021, 17:52 |
|
Экземпляр класса java, как in out nocopy параметр
|
|||
---|---|---|---|
#18+
Lemkoleg Цель: заполнить поля класса, без созданиии экземпляра обьектного типа оракл, в целях экономии памяти и времени на возврат данных полей. Кто придумал эту цель и как он измерил траты времени и памяти в том и в другом случае? Ответ "Вы (или Ваш начальник) помусолив палец и поплевав в потолок" означает, что целесообразнее всего оставить эту задачу и заняться чем-нибудь полезным. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2021, 05:21 |
|
|
start [/forum/topic.php?fid=52&msg=40117858&tid=1879702]: |
0ms |
get settings: |
26ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
215ms |
get tp. blocked users: |
2ms |
others: | 390ms |
total: | 727ms |
0 / 0 |