| 
 | 
| 
 
Как избежать проблем ) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Basil A. Sidorov вернёт заданные поля вставленной записи. Если, конечно, есть поддержка в драйвере. Если нет, то на первом проходе делаем вставку, а на втором - выбираем искомые идентификаторы для всех исходных значений. Коряво, но вполне работоспособно. asv79Но вот когда ты сталкиваешься с многопоточкой Одна сессия вставили и НЕ закомитела Вторая сессия пытается вставить - получает exceptin Пытается получить ID-ник SELECT'ом - а облом ))) Первая сессия коммитет, но второй это уже не поможет p.s. в сообщении 22314707 no_data_found конечно опечатка, скорее всего, что-то типа DUP_VAL_ON_INDEX будет ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 26.04.2021, 20:03 | 
  
  
  
   | 
||
| 
 
Как избежать проблем ) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Leonid Kudryavtsev Одна сессия вставили и НЕ закомитела Вторая сессия пытается вставить - получает exceptin Пытается получить ID-ник SELECT'ом - а облом ))) Первая сессия коммитет, но второй это уже не поможет На самом деле так: 1. tx1 началась, вставила запись 2. tx2 началась, при вставке заблокировалась на изменении индекса. Ну а дальше два возможных варианта: 3.a tx1 делает коммит, что разблокирует tx2 и та валится с исключением 3.b tx1 делает rollback, что разблокирует tx2 и та удачно вставляет ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 26.04.2021, 22:28 | 
  
  
  
   | 
||
| 
 
Как избежать проблем ) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  asv79, я тут только счас понял что SELECT делается потому что у Email'ов есть ID. Так вот.. Раз email'ы уникальные, почему бы вообще не избавиться от суррогатного Primary Key и не использовать email в качестве PK? Тогда SELECT вообще не нужен будет. А в Foreign Key можно прям email и писать.  Хотя наверно ты мигрируешь в уже готовую схему, менять ее уже не выйдет.. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 26.04.2021, 22:40 | 
  
  
  
   | 
||
| 
 
Как избежать проблем ) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Без классов прям совсем никак (или mybatics?)? Хотя предложенный ранее insert/on conflict retur... выглядит более логичным. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 27.04.2021, 00:11 | 
  
  
  
   | 
||
| 
 
Как избежать проблем ) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Stanislav Bashkyrtsev Leonid Kudryavtsev Одна сессия вставили и НЕ закомитела Вторая сессия пытается вставить - получает exceptin Пытается получить ID-ник SELECT'ом - а облом ))) Первая сессия коммитет, но второй это уже не поможет Получит. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 27.04.2021, 01:56 | 
  
  
  
   | 
||
| 
 
Как избежать проблем ) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  asv79 зато работает быстро - если ввести переменную -замедляется процесс ,так как все это в цикле ,в котром будет куча мусора из под этих временных объектов Херово жить без профильного образования. Когда ты делаешь 6 раз гет у тебя ничего не выполняется в этот момент? Гет берется из астрала за 0,5 такта цп? А что я говорил в прошлом треде? Вот, ты опять танцуешь вокруг своей орм с костылями и подпорками, а мы смотрим и смеёмся. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 27.04.2021, 04:03 | 
  
  
  
   | 
||
| 
 
Как избежать проблем ) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  crutchmaster asv79 зато работает быстро - если ввести переменную -замедляется процесс ,так как все это в цикле ,в котром будет куча мусора из под этих временных объектов Херово жить без профильного образования. Когда ты делаешь 6 раз гет у тебя ничего не выполняется в этот момент? Гет берется из астрала за 0,5 такта цп? А что я говорил в прошлом треде? Вот, ты опять танцуешь вокруг своей орм с костылями и подпорками, а мы смотрим и смеёмся. смотри я ж не просто так сделал все эти длинные касты- я протестировал с ними и без них - создание нового объекта очень сильно нагружает процесс - и да - пусть код не очень хорошо читаем,но он быстрее где то на 20% орм то тут причем? или мне может пойти к руководству и сказать - давайте братцы - выделите бюджет млн 10 -15 на переписку сервисва на ждбси?))) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 27.04.2021, 09:05 | 
  
  
  
   | 
||
| 
 
Как избежать проблем ) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Stanislav Bashkyrtsev asv79, я тут только счас понял что SELECT делается потому что у Email'ов есть ID. Так вот.. Раз email'ы уникальные, почему бы вообще не избавиться от суррогатного Primary Key и не использовать email в качестве PK? Тогда SELECT вообще не нужен будет. А в Foreign Key можно прям email и писать.  Хотя наверно ты мигрируешь в уже готовую схему, менять ее уже не выйдет.. да у емайл есть id поэтму до кучи мне пришлось переделать их с identity на sequence иначе селекты вообще не проходили - так как присовоение id идет при записи пс.да миграция идет в готовую схему - которую никто не даст менять поэтому приходится работать с невалидными данными со стороны монго и с другой постгрес - которая не отвечает даже 1 нф ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 27.04.2021, 09:10 | 
  
  
  
   | 
||
| 
 
Как избежать проблем ) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Leonid Kudryavtsev Basil A. Sidorov ...Или это слишком банально и содержит мало объектных типов? IMHO скорее всего не поможет. Ему еще ID'шник из базы получить нужно. А тут даже try { INSERT ... } exception WHEN_NO_DATA_FOUND { SELECT ... } может не помочь, при обычном Read committed ))) такая схема работает инсерт в try ->exeption ->catch ->select правда скорость оставляет желать лучшего ,но по крайне мере я добился чего и хотел ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 27.04.2021, 09:13 | 
  
  
  
   | 
||
| 
 
Как избежать проблем ) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Leonid Kudryavtsev Скорее всего должен быть обернут в synchronized. А если мы хотим еще данный список еще и с БД поддерживать в корректном состоянии, то и insert и commit так же должен быть в этом же блоке synchronized. IMHO посмотри сюда на первое сообщение Код: java 1. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 27.04.2021, 09:15 | 
  
  
  
   | 
||
| 
 
Как избежать проблем ) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Leonid Kudryavtsev Stanislav Bashkyrtsev пропущено... Вторая транзакция не получит exception пока первая не закоммитит, иначе это бы нарушало изоляцию READ COMMITTED. Мол, вставить запись не могу, хоть даже записей с таким значением нет в таблице. Получит. asv79орм то тут причем? или мне может пойти к руководству и сказать - давайте братцы - выделите бюджет млн 10 -15 на переписку сервисва на ждбси?)))В целом-то сервис не обязательно трогать, только миграцию писать на JDBC. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 27.04.2021, 09:20 | 
  
  
  
   | 
||
| 
 
Как избежать проблем ) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  [quot Stanislav Bashkyrtsev#22314670 Я правда не понял зачем ты вообще SELECT делаешь, если у тебя и так email есть.. Получается какой-то бесполезный   Код: java 1. /quot] все очень просто - там три сущности - первая это ящик- далее рассылка и третья M2M тоесть я пишу рассылку далее в цикле прогоняю ящики и м2м для чего нужен такой селект - чтобы у меня на руках был id емайл которй я могу записать в м2м вообщем трай кетч работает - большего и не требуется ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 27.04.2021, 09:20 | 
  
  
  
   | 
||
| 
 
Как избежать проблем ) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  asv79, >там три сущности - первая это ящик- далее рассылка и третья M2M =незачет. След топик начинай с DDL))))) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 27.04.2021, 09:40 | 
  
  
  
   | 
||
| 
 
Как избежать проблем ) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  asv79, Новые сущности, в эксклюзивном режиме, можно писать без генерации айди в бд. Джун ты наш. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 27.04.2021, 09:42 | 
  
  
  
   | 
||
| 
 
Как избежать проблем ) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  asv79 орм то тут причем? Притом, что ты пляшешь вокруг него с подпорками и приседаешь. asv79 создание нового объекта Ссылки ты хотел сказать? Нагружает процесс, да? asv79 или мне может пойти к руководству и сказать Да не надо тебе ничего менять, всё нормально. Ты же сам его выбрал и рассказываешь, какой он крутой. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 27.04.2021, 10:23 | 
  
  
  
   | 
||
| 
 
Как избежать проблем ) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  PetroNotC Sharp asv79, Новые сущности, в эксклюзивном режиме, можно писать без генерации айди в бд. Джун ты наш. вот это новость ) а кто то утверждал что нельзя? а вот если сущнность содержит ссылку на другую сущность - то вроде как уже нужен id) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 27.04.2021, 10:35 | 
  
  
  
   | 
||
| 
 
Как избежать проблем ) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Basil A. Sidorov Многопоточная вставка это то, что не надо делать с базой. в одном потоке слишком долго,хотя SLA на процессы нет - то может и придется писать в однопоточке ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 27.04.2021, 10:39 | 
  
  
  
   | 
||
| 
 
Как избежать проблем ) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  asv79 PetroNotC Sharp asv79, Новые сущности, в эксклюзивном режиме, можно писать без генерации айди в бд. Джун ты наш. вот это новость ) а кто то утверждал что нельзя? а вот если сущнность содержит ссылку на другую сущность - то вроде как уже нужен id) Вставляем мастер с айди 123 и потом в детайль с этим же 123. Ничего запрашивать не надо. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 27.04.2021, 10:42 | 
  
  
  
   | 
||
| 
 
Как избежать проблем ) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  asv79 Basil A. Sidorov Многопоточная вставка это то, что не надо делать с базой. в одном потоке слишком долго,хотя SLA на процессы нет - то может и придется писать в однопоточке Ты с работающей однопоточки начать должен был. Потом тюнинг. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 27.04.2021, 10:44 | 
  
  
  
   | 
||
| 
 
Как избежать проблем ) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  PetroNotC Sharp asv79 пропущено... вот это новость ) а кто то утверждал что нельзя? а вот если сущнность содержит ссылку на другую сущность - то вроде как уже нужен id) Вставляем мастер с айди 123 и потом в детайль с этим же 123. Ничего запрашивать не надо. ааа вот оно чо ,а айди то ты где возьмешь) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 27.04.2021, 11:05 | 
  
  
  
   | 
||
| 
 
Как избежать проблем ) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  asv79, Выше писал. Счетчик на клиенте. Хоть до миллиарда. Потом вкл индекс PK ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 27.04.2021, 11:09 | 
  
  
  
   | 
||
| 
 
Как избежать проблем ) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  asv79, Есть куча решений. Но: - ты не дал DDL - ты слился - ты не сделал однопоточку и не дал цифры ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 27.04.2021, 11:10 | 
  
  
  
   | 
||
| 
 
Как избежать проблем ) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Leonid Kudryavtsev asv79Но вот когда ты сталкиваешься с многопоточкой И даже если не касаться азов устройства СУБД, то задлянафига в сугубо последовательном процессе многопоточка? Чтобы оно сразу было и сразу глючило? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 27.04.2021, 12:39 | 
  
  
  
   | 
||
| 
 
Как избежать проблем ) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  asv79 в одном потоке слишком долго ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 27.04.2021, 12:43 | 
  
  
  
   | 
||
| 
 | 

start [/forum/topic.php?fid=59&msg=40066238&tid=2120462]:  | 
    0ms | 
get settings:  | 
    12ms | 
get forum list:  | 
    14ms | 
check forum access:  | 
    5ms | 
check topic access:  | 
    5ms | 
track hit:  | 
    66ms | 
get topic data:  | 
    11ms | 
get forum data:  | 
    3ms | 
get page messages:  | 
    58ms | 
get tp. blocked users:  | 
    1ms | 
| others: | 236ms | 
| total: | 411ms | 

| 0 / 0 | 

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