| 
 | 
| 
 
Как избежать проблем ) 
 | 
|||
|---|---|---|---|
| 
 #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=40066054&tid=2120462]:  | 
    0ms | 
get settings:  | 
    12ms | 
get forum list:  | 
    11ms | 
check forum access:  | 
    3ms | 
check topic access:  | 
    3ms | 
track hit:  | 
    64ms | 
get topic data:  | 
    10ms | 
get forum data:  | 
    2ms | 
get page messages:  | 
    56ms | 
get tp. blocked users:  | 
    1ms | 
| others: | 245ms | 
| total: | 407ms | 

| 0 / 0 | 

    Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
    
    
    «На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
    
    
    ... ля, ля, ля ...