powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Работа с преобразованием справочников из Java
49 сообщений из 49, показаны все 2 страниц
Работа с преобразованием справочников из Java
    #39904980
Морфий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите шаги по улучшению работы конвертации справочных значений.

Требования: высокая нагрузка, минимальное время конвертации.

Что имеется сейчас и как реализовано:
БД Oracle с таблицей:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
create table dict_map (
  dict_name varchar2(100), -- Наименование справочника
  sys_from varchar2(40),   -- Название системы источника
  code_from varchar2(40), -- Значение справочника в системе источника
  sys_to varchar2(40),    -- Система назначения
  code_to varchar2(40)   -- Значение справочника в системе назначения
);



Код: plsql
1.
2.
3.
4.
5.
6.
7.
-- Преобразование значения из системы SF1 в значение в системе SF2
INSERT INTO DICT_MAP (dict_name, sys_from, code_from, sys_to, code_to) VALUES ('DICT_1', 'SF1', 'Code_SF_1', 'ST2', 'Code_ST_2');
-- Обратное преобразование значения из системы SF2 в значение в системе SF1
INSERT INTO DICT_MAP (dict_name, sys_from, code_from, sys_to, code_to) VALUES ('DICT_1', 'ST2', 'Code_ST_2', 'SF1', 'Code_SF_1');

INSERT INTO DICT_MAP (dict_name, sys_from, code_from, sys_to, code_to) VALUES ('DICT_2', 'SF3', 'Code_SF_3', 'ST4', 'Code_ST_4');
INSERT INTO DICT_MAP (dict_name, sys_from, code_from, sys_to, code_to) VALUES ('DICT_2', 'ST4', 'Code_ST_4', 'SF3', 'Code_SF_3');


Таких строк будем считать более 10к, и возможно добавление и изменение значений.

При преобразованиях указывается нужные параметры для получения нового значения:
Код: plsql
1.
SELECT code_to FROM dict_map WHERE sys_from = ? AND sys_to = ? AND code_from = ? AND dict_name = ?


Запросы выполняются из Java сервиса, по чистому JDBC без ORM прослоек.


Интересует:
Как можно ускорить преобразование справочных значений? - Наверняка надо кэшировать в памяти, размер кэша предполагаю "не большой".
Если кэш - то как синхронизировать значения кэша с тем хранилищем, где хранятся значения справочника?
По времени сбрасывать весь кэш или как-то отслеживать время изменения перед преобразованием (но это потенциальная задержка каждого преобразования)
Будут ли плюсы от использования NoSQL БД?
Может быть есть какие-то готовые opensource продукты для работы со справочниками?


Какие есть варианты или предположения:
1. Настроить на Oracle хранение таблицы в памяти или какое-то другое кэширование запросов.
минус - запросы по сети и потеря время на этом.
2. Перейти на Postgres (Oracle излишний для этой задачи) и тоже настроить кэширование данных БД.
минус - запросы по сети и потеря время на этом.
плюс - не нужна лицензия за БД.
3. Использовать какие-то БД типа "ключ-значение" - тут пока пробел.
Ключом тогда будет составное значение sys_from + sys_to + code_from + dict_name
Будет ли это быстрее чем использование реляционных БД?

Готов ответить на ваши вопросы.
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39904984
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не очень понятно что именно тормозит. Нужны данные профилирования Java приложения.
Это как сделать томограмму больному. Понимаешь да? Иначе мы судим не ботлнек а просто
твои мысли на эту тему.

Вобще. Если это оракл то у тебя должны быть проиндексированы следующие поля

Код: plsql
1.
create index dict_map_idx on dict_map(sys_from, sys_to, code_from, dict_name);


+опции сжатия индекса надо попробовать потом оционально.

Еще есть второй вариант - перестроить табличку в индексно-организованную. Но ты попробуй сначала первый вариант.
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39904985
irbis_al
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Морфий,
Если честно не совсем понял задачу...
Но понял одно...надо какие-то преобразования над данными.
И тут лучше всего подойдёт
Пакетные или хранимые процедуры Oracle(pl/sql или Postres (pl/pgsql)
Но
то если вы можуту изменять код приложения...
Вместо
Код: plsql
1.
2.
3.
insert (...) values()
/*Использовать типа*/
pk_dict.process(...params);
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39904991
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Будут ли плюсы от использования NoSQL БД?
В общем случае нет. Пока не будет идентифицирован проблемный кусок кода.
Если например проблема - сетевая интеракция (медленно летают TCP) пакеты
от вашего сервера приложений из Череповца в Чикаго - то хоть какую БД
ставь - все равно будет плохо и нудно. Поэтому и нужно точно-точно понять
какая java-строка работает медленно.
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39904995
iOracleDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Морфий,

Это - code_to как потом используется? Если результат конвертации записывается в БД, тогда делайте все в пакетной процедуре в БД.
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905001
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Морфий,
Никто не понял задачи. И я тоже.
Конвертировать справочник надо одноразово.
Зачем тут скорость?
При конвертации все работы встают. То есть ночью.
Зачем тут скорость?
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905010
Морфий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про томограмму понимаю :-)

Хочется иметь "кэш" этих данных в самом сервисе, чтобы избежать запросов по сети в БД.
Или может быть какую-то inmemory БД поднимать в сервисе и туда переливать данные из реляционной БД, т.к. inmemory поиска кажется будет быстрее.

Вопрос больше сводиться к тому как правильно построить кэш который будет наполняться значениям из БД.
Как следить за актуальность кэша, как выбрать ключ, если использовать БД типа "ключ-значение",

Подойдёт ли тут Redis?
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905012
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Морфий,
По тексту видно что прогер сам себе ищет работу.
Почему справочник надо кешировать, а журнал документов нет?
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905014
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бред какой-то. От начала и до конца.

Описываемая задача является стандартной для любой СУБД. Называется .... JOIN

Зачем сервис, Java, кэш, Redis или что нибудь другое - вообще не понятно
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905015
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Морфий
Вопрос больше сводиться к тому
спросил про одно, а надо другое.
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905016
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,
+1)))
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905018
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Морфий
Про томограмму понимаю :-)

Хочется иметь "кэш" этих данных в самом сервисе, чтобы избежать запросов по сети в БД.
Или может быть какую-то inmemory БД поднимать в сервисе и туда переливать данные из реляционной БД, т.к. inmemory поиска кажется будет быстрее.

Вопрос больше сводиться к тому как правильно построить кэш который будет наполняться значениям из БД.
Как следить за актуальность кэша, как выбрать ключ, если использовать БД типа "ключ-значение",

Подойдёт ли тут Redis?

Очень многие вещи в архитектурах создаются итеративно. Тоесть ты ищещь решение. Пробуешь.
Плохо? Изменяешь. Наперед никакой архитектор здесь и в прочих форумах тебе никогда не посоветует
решение чтоб на всегда. Редис тоже имеет недостатки вида ограниченность памяти и неизвестность
сколько TTL ставить на каждую запись. Понимаешь да? Это как транспортная задача. Задача со многими
неизвестными.

В качестве inmemory dbms я навскидку вспоминаю: Java: Hazelcast, Ignite, Oracle Koherence, Cassandra.
Native: Redis, Memcached.

Кстати подумай о том как твой кеш будет инвалидироваться.
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905024
apb12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
предлагаю автора в бан,кто за ,кто воздержался ?)
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905026
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apb12,
))
ТС,
Какой из трех вопросов потерял актуальность:
- как конвертить спавочник
- как кешировать справочник
- no sql бд лучше ли оракла для моего проекта
?
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905028
apb12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
apb12,
))
ТС,
Какой из трех вопросов потерял актуальность:
- как конвертить спавочник
- как кешировать справочник
- no sql бд лучше ли оракла для моего проекта
?

его вопрос потерял актуальность вот с этой фразой
"Запросы выполняются из Java сервиса, по чистому JDBC без ORM прослоек."
за это нужно бить палками на площадях,потому что потом их говнокод будут разбирать такие как и проклинать свою жизнь)))
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905032
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мы тоже не используем ORM.
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905033
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apb12,
Согласен. Но вдруг у него внешний заказчик с этим сервисом сидит.
Тогда там другие законы. Законы а ля soap.
Или твой сервис)))
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905034
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Мы тоже не используем ORM.

Зато у оракла кеш есть.
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905043
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton
Мы тоже не используем ORM.

Зато у оракла кеш есть.

TimesTen?
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905049
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton, нет. Из коробки)
Database caches
какие в базах данных есть кэши:

Buffer cache — кэш данных — cache for data pages/data blocks;
Statement cache — кэш операторов и их планов — cache of queries plan;
Result cache — кэш результатов строк — rows from queries;
OS cache — кэш операционной системы.
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905112
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У всех dbms это есть. Но топик не об этом.
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905144
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Да. Ты выше замечательно сказал - итеративный подход. Его нет у автора.
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905201
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apb12
предлагаю автора в бан,кто за ,кто воздержался ?)


Предлагаю тебя в бан.
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905202
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apb12
за это нужно бить палками на площадях,потому что потом их говнокод будут разбирать такие как и проклинать свою жизнь)))

Вот прям сейчас разбираю говнокод с орм там, где он не нужен. А вообще с твоей компетенцией и так уже всё ясно.
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905203
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Морфий,

10к записей - это ни о чём. Даже миллион таких записей ява прожуёт на обычном компе. Можешь всё выбрать и разложить по HashMap/TreeMap/поисковым деревьям или тупо по комплексному ключу. Бд тут вообще не при чём, не трогай её, ты дольше ходить будешь по сети. С инвалидацией кэша - не знаю, как у тебя данные обновляются, ничего не могу сказать. Если всё идёт через яву, прям там и синхронизируй всё, вообще никаких проблем.
Морфий
Готов ответить на ваши вопросы.

Какая нагрузка на сервис в запросах/сек?
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905204
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Морфий
Подойдёт ли тут Redis?

Да зачем? 10к записей можно в map какой-нибудь запихать и будет тоже самое.
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905205
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
Описываемая задача является стандартной для любой СУБД. Называется .... JOIN

Чтобы решить что бред, а что нет, надо ответить на следующие вопросы:
Какое минимальное время выполнения запроса удалённого клиента на оракле?
Какие запросы обрабатывает клиент оракла?
Сколько их?
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905208
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Морфий
Про томограмму понимаю :-)

Хочется иметь "кэш" этих данных в самом сервисе, чтобы избежать запросов по сети в БД.
Или может быть какую-то inmemory БД поднимать в сервисе и туда переливать данные из реляционной БД, т.к. inmemory поиска кажется будет быстрее.

Вопрос больше сводиться к тому как правильно построить кэш который будет наполняться значениям из БД.
Как следить за актуальность кэша, как выбрать ключ, если использовать БД типа "ключ-значение",

Подойдёт ли тут Redis?


В зависимости от того как работаешь с БД, можно сделать по разному.
Например, если используется Хибернайте, то можно попробовать уже встроенным кешированием в хибернейте.
Если справочных значений не много, можно загнать их в HashMap.
И т.д.

Все зависит какую задачу решаете.
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905231
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apb12
предлагаю автора в бан
В чужом-то глазу и соринку замечаем???
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905260
Морфий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot apb12#22043550]
PetroNotC Sharp
apb12,
"Запросы выполняются из Java сервиса, по чистому JDBC без ORM прослоек."
за это нужно бить палками на площадях,потому что потом их говнокод будут разбирать такие как и проклинать свою жизнь)))


Почему нужно бить?
Чем плох чистый JDBC при работе с одной таблицей и по факту один SELECT из кода?

crutchmaster, спасибо за конструктивные решения и мапами и комплексным ключом.
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905273
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Морфий
Чем плох чистый JDBC при работе с одной таблицей и по факту один SELECT из кода?

Тем, что он ничего другого не осилил.
crutchmaster, спасибо за конструктивные решения и мапами и комплексным ключом.
Не за что. Какая нагрузка планируется на систему?
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905320
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Морфий
Почему нужно бить?
потому что ТС не сопровождает свой топик.
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905334
Морфий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
Какая нагрузка планируется на систему?


Думаю, что не более 1М запросов в день, т.е. в зависимости от пика от 10 до 100 в секунду.

Конечно оптимизировать и добиваться производительности на самом начале не рационально, хотелось бы заложить
правильный фундамент с расчётом на рост нагрузки.

Пока думаю вот над таким вариантом:
1. При инициализации сервиса (модуля) зачитать всё из БД и составить мап с "составным" ключом.

Частого изменения справочника не планируется, поэтому можно оставить вариант перезапуска сервиса при изменении справочника.

Т.е. получается вариант долго запрягаем, зато быстро ездим.
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905343
Морфий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Морфий
Почему нужно бить?
потому что ТС не сопровождает свой топик.


Вопрос не относится к сопровождению топика, он про использование JDBC.
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905363
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Морфий
PetroNotC Sharp
пропущено...
потому что ТС не сопровождает свой топик.


Вопрос не относится к сопровождению топика, он про использование JDBC.

JDBC - не имеет никаких паттернов относительно преобразования справочников.
Почитай про Statement::addBatch() и про возможности ETL базы данных которую
ты используешь.

Я убежден что твой вопрос вообще другой. Ты лучше подумай. И подними новый топик
с пояснением сути твоей проблемы.
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905405
Морфий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

Почитай про Statement::addBatch() и про возможности ETL базы данных которую
ты используешь.

Я убежден что твой вопрос вообще другой. Ты лучше подумай. И подними новый топик
с пояснением сути твоей проблемы.


Statement::addBatch() не нужен, т.к. у меня только чтение данных из уже готовой таблицы.

Спасибо за совет, подумаю получше над вопросом, и тогда открою новый топик.

На этом можно считать этот топик закрытым .
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905408
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Морфий,
Аффтар. Ты опять ничего не понял?
Нужно отвечать на посты в топике.
Где твоя ПРОБЛЕМА?
mayton
Я убежден что твой вопрос вообще другой. Ты лучше подумай. И подними новый топик
с пояснением сути твоей проблемы.

+1
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905424
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Морфий
Думаю, что не более 1М запросов в день, т.е. в зависимости от пика от 10 до 100 в секунду.

Ну, самый простой hashmap будет выбирать запись гораздо меньше 10 мс, так что на 100+ rqs тонким местом он не будет. Главное строку для ключа сшивай через StringBuilder, а не складыванием.
А через что запросы будут идти? Http?
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905461
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если преобразование - это ETL то и делать надо средствами ETL. И java тут вообще непричем.

Если автор хочет кеширование - то это вообще про другое. И это да. Это Java.
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905472
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
Ну, самый простой hashmap
еще проще без него и включить локальный кеш драйвера оракла 2 гига.
Хотя автор вопрос закрыл, что тут придумывать.
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905488
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,

Можно еще проще - вообще без оракла. А зачем он тут?
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905489
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
Leonid Kudryavtsev
Описываемая задача является стандартной для любой СУБД. Называется .... JOIN

Чтобы решить что бред, а что нет, надо ответить на следующие вопросы:
Какое минимальное время выполнения запроса удалённого клиента на оракле?
Какие запросы обрабатывает клиент оракла?
Сколько их?

А при чем тут это?

Если есть две таблицы, таблица данных и таблица перекодировки и их надо join'уть, то зачем тут прослойка в виде Java - совершенно не понятно. Если что-то типа ETL, миграции/интеграции и данные из системы переливаются куда-то, то хоть join'и на базе источнике, хоть join'и на безе назначения - без разница, ну а поскольку нормальные люди по одной записи между базами не переливают - то даже сравнивать бессмысленно.

Топик как-то выглядит: мы java программисты, а не программисты СУБД, поэтому ни за какие join'ы ничего не знаем, а все будем делать "циклами, циклами" ( C ) данный подфорум

Что такое "удаленный клиент" из контекста фразы вообще не понятно.
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905491
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
Топик как-то выглядит: мы java программисты

Да ну не. Те давно бы уже сделали на мапах и никого не спрашивали.
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905495
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
Можно еще проще - вообще без оракла. А зачем он тут?
можно.
ТС вообще не сказал что у него болит и какие симптомы.
Пусть учится чем лечить по фотографии непонятно что.
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905681
если я правильно понял тему, то у автора тормозит какой то бизнес процесс из за большого количества выполнений селекта

Код: plsql
1.
  SELECT code_to FROM dict_map WHERE sys_from = ? AND sys_to = ? AND code_from = ? AND dict_name = ?



если оптимизировать средствами оракл, то можно так попробовать, при условии что изменений мало будет

1. хеш. создаем хеш кластер, ключ (dict_name, sys_from, sys_to, code_from), туда подсовываем таблицу. О(1)
2. б-три дерево. создать индекс на (dict_name, sys_from, sys_to, code_from, code_to). О(logN)
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905683
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор. Ты построил индекс что я предлагал?

Как это повлияло на перформанс? +Сколько % стало быстрее?
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905703
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сладкий бубалех
из за большого количества выполнений селекта
переведи. То что ты написал элементарный запрос для оптимизатора.
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905752
PetroNotC Sharp
сладкий бубалех
из за большого количества выполнений селекта
переведи. То что ты написал элементарный запрос для оптимизатора.


а что оптимизатор? один раз распарсил и откомпилировал. а дальше тонны выполнений этого запроса. полная выборка блоков из таблицы, перебор строк в блоке, и в самой строке перебором до нужного поля, на это тоже ресурсы CPU тратятся хоть и блоки таблицы уже в кеше сидят. Ораклисты смотрят AWR, чтобы сказать где точно проблема
...
Рейтинг: 0 / 0
Работа с преобразованием справочников из Java
    #39905754
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выж в суть проблемы смотрите.
При преобразованиях указывается нужные параметры для получения нового значения:
Этот select запрос участвует в процессе "преобразования" справочника.
А значит что он не единичный. А - массовый. И скорее всего его надо сделать на стороне БД.
Но мы не можем сделать потому что мы не понимаем всего процесса ETL.
...
Рейтинг: 0 / 0
49 сообщений из 49, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Работа с преобразованием справочников из Java
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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