powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Поиск по ресурсам
14 сообщений из 39, страница 2 из 2
Поиск по ресурсам
    #39265825
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_X3. чем и из чего распиливать = this.getClass().getResourceAsStream(resource);

Распиливать? У вас же есть код чтения всех полей из файла. Разница только в том что вы поля сразу выкидываете. А можно записывать в память.


HOME_X4. "Oracle экземплярами JVM управляет" - т.е. Вы хотите сказать что для сессии возможно единоразово
вызвать класс ресурсов, распилить его в память и прогнать по нему пул записей из 20 тыс. записей.

Конечно. Но в пределах сессии. Чтобы зашарить данные между всеми сессиями, надо почитать как оно делается
https://docs.oracle.com/cd/B19306_01/java.102/b14187/chtwo.htm
...
Рейтинг: 0 / 0
Поиск по ресурсам
    #39265826
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonОчень странно работать внутри БД и при этом не использовать курсоры и реляционную алгебру.
Становись в очередь.
...
Рейтинг: 0 / 0
Поиск по ресурсам
    #39265827
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_X4. "Oracle экземплярами JVM управляет" - т.е. Вы хотите сказать что для сессии возможно единоразово вызвать класс ресурсов, распилить его в память

В чем проблема?

Любой PL/SQL пакет, секция инициализации.

Другое дело, что тут зависит кто клиент. Если где-то есть пул коннектов к базе, то понятие "сессия" уже не то, что прежде.

HOME_Xединоразово распилить его в память и прогнать по нему пул записей из 20 тыс. записей.

Верно ли Вас понимаю - так разве возможно?
А почему нет? В чем проблема?

Это до Вас и пытаемся донести.
...
Рейтинг: 0 / 0
Поиск по ресурсам
    #39265829
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz
Я бы всё равно делал на JDBC, и выбирал бы базу из контекста. Если Oracle - читаем из Oracle, если нет, читаем через любую легковесную встроенную БД



Не, извините, сложно для тиражирования, доп. инсталяция ...


4. "Oracle экземплярами JVM управляет" - т.е. Вы хотите сказать что для сессии возможно единоразово
вызвать класс ресурсов, распилить его в память и прогнать по нему пул записей из 20 тыс. записей


Подтвердите верно ли я Вас понял.

Не понимаю как это реализовать и синтегрировать с Oracle-ом ?
Пример (В КОДЕ) не подкините ?
...
Рейтинг: 0 / 0
Поиск по ресурсам
    #39265831
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во времена девятки у Oracle была очень жлобская JVM. Непроизводительная
и по дефолту сконфигурированная на такой объем Xmx чтобы только написать
Hello World. Даже для установки патчей на Oracle ей временно поднимали эту планку.

Не знаю как щас. Наверное получше стало но при прочих равных условиях я-бы лишний раз
подумал перед тем как завязывать какие-то перформансные штуки на нее.
...
Рейтинг: 0 / 0
Поиск по ресурсам
    #39265840
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevВерно ли Вас понимаю - так разве возможно?
А почему нет? В чем проблема?

Это до Вас и пытаемся донести.[/quot]


Уже подтвердили - спасибо !!!!



Вот бы еще примерчик в коде (или ссылку толковую статью )
В Oracle Help-е - там образно пишется, детализация хреноВАТА !!!!
...
Рейтинг: 0 / 0
Поиск по ресурсам
    #39265844
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_XПример (В КОДЕ) не подкините ?

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
class MyResourceLoader {

   static final Map<String, List<Records>> data = loadDataFromResource()
   
   private void LoadProfil(String resource,String kind,int duration,int grace,Double monthly,Double amount[],Double unpaid[],Double  outstanding[]){
           for (Record record : data.get(kind)){
              if(record.matches(duration, grace, monthly)){
                    record.collect(amount, unpaid, outstanding, i++);
              }
           }
   }
}



Важно:
1) Ресурс только один. Почему-то же он у вас параметром метода?
1) На каждую сессию будет загружаться ресурс в память сессии.
...
Рейтинг: 0 / 0
Поиск по ресурсам
    #39266598
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

1. Партфицировал ресурс по условиям "="
Из одного файла сделал 30, скорость увеличилась раз в 10 ........

Относительно кода
Вас понял - спасибо Вам большое за пример !
Буду внедрять.......


Еще момент - следуя Вашему первоначальному совету (если все верно понял ....)

Пытаюсь внедрить в jar библиотеку внут. таблицу.
1. в целом архитектура не нарушается - изнутри функция не имеет доступа к данным oracle.
2. будет организован доступ к некой внутренней таблице тот же функции.

Отсюда вопрос
- это надо внедрять в базу Oracle драйвера для работы с неким форматов (например DBF)
- не могли бы посоветовать "быстрый" формат
- может в 12 версии Oracle есть уже внедренные JDBC драйвера для "локальных" форматов.

Будет ли выиграш в скорости при использовании такого driver-а ?
Или распар-е текста все же лучше ?
...
Рейтинг: 0 / 0
Поиск по ресурсам
    #39266638
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz1) Ресурс только один. Почему-то же он у вас параметром метода?


Планировал использовать разные ресурсы, как в примере с партификацией
...
Рейтинг: 0 / 0
Поиск по ресурсам
    #39266640
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz1) На каждую сессию будет загружаться ресурс в память сессии.


Мне это более чем подходит
А как и как будет контролироваться этот процесс ? (java контролирует ?)

Имею в виду следующее
Запрос
select A.F1,MyType(ссылка на java класс) F2
from LIST

Результат
F1 F2
'А' 100
'B' 200
'С' 300

Первая запись - инициализация массива (считывание из текста)
Вторая запись - будет повторять считывания, или java умная и поймет, что ресурс уже обработан ?
Третья запись - будет повторять считывания, или java умная и поймет, что ресурс уже обработан ?

End выборки - массив в памяти ?
Когда будет очистка потока ?
...
Рейтинг: 0 / 0
Поиск по ресурсам
    #39266645
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Blazkowicz]HOME_XПример (В КОДЕ) не подкините ?

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
class MyResourceLoader {

   static final Map<String, List<Records>> data = loadDataFromResource()
   
   private void LoadProfil(String resource,String kind,int duration,int grace,Double monthly,Double amount[],Double unpaid[],Double  outstanding[]){
           for (Record record : data.get(kind)){
              if(record.matches(duration, grace, monthly)){
                    record.collect(amount, unpaid, outstanding, i++);
              }
           }
   }
}



data.get(kind) - здесь не ясно, считывание по УНИКАЛЬНОМУ ключу ?
у меня как такого нет ключа

Есть группа (по которой провел партификацию)
Есть поля в диапазоне F1-F2, T1-T2,D1-D2

Тип Групп F1 F2 T1 T2 D1 D2 RETURN
АМОUNT POS_CASH > < > < > < 1
АМОUNT POS_CASH > < > < > < 2
АМОUNT POS_CASH > < > < > < 6
UNPAID POS_CASH > < > < > < 4
UNPAID POS_CASH > < > < > < 3
UNPAID POS_CASH > < > < > < 5

Чем я выиграю используя MAP c уникальным ключом, или в MAP-е можно локализовать
поиск по ГРУППЕ записей ?
Что вернет data.get(kind) - группу записей, по которой нужно пройтись циклом
Прошу подтвердить этот момент

СПАСИБО ЗА УЧАСТИЕ
...
Рейтинг: 0 / 0
Поиск по ресурсам
    #39266648
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У тебя столько вопросов, что ответить на них не возможно. Больше половины можно прочитать в любой книжке по Java (static, map etc...)
...
Рейтинг: 0 / 0
Поиск по ресурсам
    #39266652
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_X,

Код: java
1.
2.
3.
4.
5.
6.
7.
Тип       Групп     F1  F2    T1 T2    D1 D2   RETURN
АМОUNT  POS_CASH     >  <     >  <     >   <      1
АМОUNT  POS_CASH     >  <     >  <     >   <      2
АМОUNT  POS_CASH     >  <     >  <     >   <      6
UNPAID  POS_CASH     >  <     >  <     >   <      4
UNPAID  POS_CASH     >  <     >  <     >   <      3
UNPAID  POS_CASH     >  <     >  <     >   <      5



Т.е. такая матрица отбора
...
Рейтинг: 0 / 0
Поиск по ресурсам
    #39267023
HOME_X
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HOME_X,

Blazkowicz - спасибо за конкретику, получилось неплохо

Пару моментов уточните пожалуйста
1. Что более эффективно вложить внутр. таблицу или отпарсить текст. ресурс

2. Суть расчета JAVA функции следующий
передал 15 обязательных параметров
вернул 20-25 параметров , в том числе 1 итоговых, остальные по требованию пользователя
ИТОГОВЫЙ параметр, это результат расчета остальных по требованию .

Заметил - если возвращаю только ИТОГОВЫЙ - работает 20-25 сек
если + остальные по требованию, время на работу увеличивается.

Можно ли предположить, что при возврате идет потеря времени на преобразование типов Oracle
Java. oracle.sql.NUMBER -> Double и обратно Double -> oracle.sql.NUMBER

Может имеет смысл заметить на более трив. тип, скажем NUMERIC(18,2) -> VARCHAR2 -> Java.Lang.String

Прошу Вашего совета...
...
Рейтинг: 0 / 0
14 сообщений из 39, страница 2 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Поиск по ресурсам
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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