|
Как избежать проблем )
|
|||
---|---|---|---|
#18+
asv79, Почему просто не сделать условный Код: plsql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 16:52 |
|
Как избежать проблем )
|
|||
---|---|---|---|
#18+
Lelouch, Он не умеет без классов ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 17:00 |
|
Как избежать проблем )
|
|||
---|---|---|---|
#18+
asv79, >там процентов 40% наверно дубликаты И..... что с ними делает комп и причем потоки? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 17:01 |
|
Как избежать проблем )
|
|||
---|---|---|---|
#18+
PetroNotC Sharp asv79, >там процентов 40% наверно дубликаты И..... что с ними делает комп и причем потоки? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 17:16 |
|
Как избежать проблем )
|
|||
---|---|---|---|
#18+
Если хочется просто закешировать пользователей, то можно обычную ConcurrentHashMap<Email, User> завести. И проверять там прежде чем делать insert или select. Вставлять в эту мапку всякий раз когда прошел удачный INSERT или не-null SELECT. Что-то такое: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 17:24 |
|
Как избежать проблем )
|
|||
---|---|---|---|
#18+
asv79 PetroNotC Sharp asv79, >там процентов 40% наверно дубликаты И..... что с ними делает комп и причем потоки? if (обработали) continue; ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 17:36 |
|
Как избежать проблем )
|
|||
---|---|---|---|
#18+
asv79 PetroNotC Sharp asv79, >там процентов 40% наверно дубликаты И..... что с ними делает комп и причем потоки? 1. Дай DDL "присваивать рассылке")))) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 17:38 |
|
Как избежать проблем )
|
|||
---|---|---|---|
#18+
asv79, Есть дубляж строки. Есть дубляж бизнес сущности. Есть дубляж "рассылки". Модель короче давай. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 17:40 |
|
Как избежать проблем )
|
|||
---|---|---|---|
#18+
PetroNotC Sharp asv79 пропущено... просто не записывать дубляж а брать сущесвующие значние и присваивать его рассылке) if (обработали) continue; так я те про что и пишу что создал) но не успевает база за списком этим - ты почитай первый вопрос как звучал ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 17:59 |
|
Как избежать проблем )
|
|||
---|---|---|---|
#18+
PetroNotC Sharp asv79 пропущено... просто не записывать дубляж а брать сущесвующие значние и присваивать его рассылке) 1. Дай DDL "присваивать рассылке")))) не могу я сюда никакие ддл выкладывать сам понимаешь почему ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 18:00 |
|
Как избежать проблем )
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev Если хочется просто закешировать пользователей, то можно обычную ConcurrentHashMap<Email, User> завести. И проверять там прежде чем делать insert или select. Вставлять в эту мапку всякий раз когда прошел удачный INSERT или не-null SELECT. Что-то такое: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
хеш мапа не нужна так как емайлы не принадлежат юзерам никаким- я сделал сет - как ты видел в первом сообщении- но проблема видимо в том ,что он быстрей работает чем бд и получается конфликт ну и ты сам выше сказал зачем дублировать состояние бд- я тоже думаю нет смысла в этом списке - надо в бд ходить ,ибо в спике уже запись имеется а в бд еще нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 18:02 |
|
Как избежать проблем )
|
|||
---|---|---|---|
#18+
Накал бреда возрастает ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 18:04 |
|
Как избежать проблем )
|
|||
---|---|---|---|
#18+
asv79 PetroNotC Sharp пропущено... 1. Дай DDL "присваивать рассылке")))) не могу я сюда никакие ддл выкладывать сам понимаешь почему Табла user и табла Рассылка из трех полей секретна? Жжешь!)))) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 18:05 |
|
Как избежать проблем )
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev Накал бреда возрастает ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 18:06 |
|
Как избежать проблем )
|
|||
---|---|---|---|
#18+
Четвертая тема автора про бд..... Которая секретна ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 18:07 |
|
Как избежать проблем )
|
|||
---|---|---|---|
#18+
PetroNotC Sharp asv79 пропущено... не могу я сюда никакие ддл выкладывать сам понимаешь почему Табла user и табла Рассылка из трех полей секретна? Жжешь!)))) хех петро ты удивишься как сложна и многогранна жизнь .Может через пару лет я расскажу что тут недавно произошло.. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 18:09 |
|
Как избежать проблем )
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev Накал бреда возрастает от вас да- то используй кешированый список ,то зачем дублировать состояние бд)) ладно закройте тему,тут толк есть только от Станислава реальный ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 18:10 |
|
Как избежать проблем )
|
|||
---|---|---|---|
#18+
asv79, Слив 4ой темы ТС. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 18:17 |
|
Как избежать проблем )
|
|||
---|---|---|---|
#18+
asv79 Stanislav Bashkyrtsev Если хочется просто закешировать пользователей, то можно обычную ConcurrentHashMap<Email, User> завести. И проверять там прежде чем делать insert или select. Вставлять в эту мапку всякий раз когда прошел удачный INSERT или не-null SELECT. Что-то такое: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
хеш мапа не нужна так как емайлы не принадлежат юзерам никаким- я сделал сет - как ты видел в первом сообщении- но проблема видимо в том ,что он быстрей работает чем бд и получается конфликт ну и ты сам выше сказал зачем дублировать состояние бд- я тоже думаю нет смысла в этом списке - надо в бд ходить ,ибо в спике уже запись имеется а в бд еще нет. Код: java 1.
С Set'ом прийдется все равно много значений хранить. Если это недопустимо, то можно Bloom Filter использовать, но не знаю есть ли многопоточные реализации. Ибо если лочить весь фильтр, то все потоки в него и будут утыкаться постоянно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 18:22 |
|
Как избежать проблем )
|
|||
---|---|---|---|
#18+
asv79проблема видимо в том ,что он быстрей работает чем бд и получается конфликт 1. Жесть и бред asv79сталкиваешься с многопоточкой 2. И при чем тут БД ? Блок Код: java 1. 2. 3.
Скорее всего должен быть обернут в synchronized. А если мы хотим еще данный список еще и с БД поддерживать в корректном состоянии, то и insert и commit так же должен быть в этом же блоке synchronized. IMHO ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 18:24 |
|
Как избежать проблем )
|
|||
---|---|---|---|
#18+
IMHO Миграция - сложное явление. ETL - тут как бы попроще. В самом слове уже содержится 3 (ТРИ!) разных действия: Extract Transformation Load (insert) Если задача сложна, то никто не мешает задачу разбить на данные простые действия. 1. Вычитали данные из помойки, залили их в том виде, как они есть в нормальную СУБД 2. Дальше банальными SELECT'ами проанилизировали и преобразовали в нужный вид Ну или если Java наше все и SELECT'ами не умеем и данных не много (помещаются в память). 1. Вычитали все данные в память/коллекции Java 2. for'ами, for'ами.... прошлись по коллекциям и подготовили новые "корректные" справочники в виде тех же коллекций 3. Пакетной вставкой все вставили в новую базу IMHO ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 18:31 |
|
Как избежать проблем )
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3.
? Или это слишком банально и содержит мало объектных типов? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 19:40 |
|
Как избежать проблем )
|
|||
---|---|---|---|
#18+
Basil A. Sidorov ...Или это слишком банально и содержит мало объектных типов? IMHO скорее всего не поможет. Ему еще ID'шник из базы получить нужно. А тут даже try { INSERT ... } exception WHEN_NO_DATA_FOUND { SELECT ... } может не помочь, при обычном Read committed ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 19:47 |
|
Как избежать проблем )
|
|||
---|---|---|---|
#18+
Код: sql 1.
вернёт заданные поля вставленной записи. Если, конечно, есть поддержка в драйвере. Если нет, то на первом проходе делаем вставку, а на втором - выбираем искомые идентификаторы для всех исходных значений. Коряво, но вполне работоспособно. P.S. Многопоточная вставка это то, что не надо делать с базой. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2021, 19:55 |
|
|
start [/forum/topic.php?fid=59&msg=40066057&tid=2120462]: |
0ms |
get settings: |
17ms |
get forum list: |
6ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
26ms |
get topic data: |
2ms |
get forum data: |
1ms |
get page messages: |
516ms |
get tp. blocked users: |
1ms |
others: | 276ms |
total: | 847ms |
0 / 0 |