|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
O_79_O, >вот решение этой проблемы,ddl не меняется - меняем сущности = то есть как я говорил - циклы не причем к первой ошибке. Не верный маппинг)) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 19:02 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
O_79_O, >не знаю только насколько это хорошо = будешь ленится делать тесты что просят мемберы - никогда не узнаешь. Удачи! ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 19:04 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp, стой) а где коммент по 18 сек на инсерт? насколько это адекватное время вставки) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 20:51 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
самое смешное во всей этой истории,что замена идентификатора с identity на sequence не дает ни какого прироста производительности и даже наоборот время вставки увеличивается где то секунд на 30 это на вставке 50 к элементов стата вот такая идентити id Код: plsql 1. 2. 3. 4.
sequence id Код: plsql 1. 2. 3. 4.
я не пойму как такое возможно ведь если исходить из статистики тут как миниум во втором варианте вставка должна была пройти быстрей раз в 50 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 21:47 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
O_79_O PetroNotC Sharp, стой) а где коммент по 18 сек на инсерт? насколько это адекватное время вставки) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 22:03 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp O_79_O PetroNotC Sharp, стой) а где коммент по 18 сек на инсерт? насколько это адекватное время вставки) выше пример с секвенсом там нет ни одного лишего запроса там всего 2552702500 nanoseconds spent executing 1010 JDBC statements; а это как раз запрос в секвенс на пачку новых айдишников - так как сущноестей у нас 50 000 то и запросов было 1000 все остальное это 200 батчей ,правда странно почему батчей 200 ,если записей было сделено 50 000 к и размер батча у меня выставлен на 500 - батчей должно быть 101 ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 22:15 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
O_79_O, Уменьшить время в 100 и тысячу раз можно - убрать ОРМ - на ОРМ но sql запросы - выкл FK и ключи, журналирование,... на время вставки - пакетный режим - кинуть файл на хост с бд -... ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 22:18 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
O_79_O, >выше пример с секвенсом там нет ни одного лишего запроса = повтори на 50тыр вставкой без хибера. Если то же время то ты достиг потолка. Далее резервы то что я описал выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 22:23 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp O_79_O, Уменьшить время в 100 и тысячу раз можно - убрать ОРМ - на ОРМ но sql запросы - выкл FK и ключи, журналирование,... на время вставки - пакетный режим - кинуть файл на хост с бд -... это все понятно ,я хочу разобоаться имеет ли смысл менять во всем проекте идентификаторы с идентити на sequnce - пока я вижу что время вставки стало хуже.А ведь именно изза этого и возникла такая задача. Поэтому у меня и остался вопрос - либо я что то не так делаю в рамках поставленной задачи- может есть какие то финты -но сейчас я вижу что смена типа идентификатора не дала ни какого прироста прозводительности ,хотя ведь все было с батчами- как такое возможно я не знаю- очень странная ситуация. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 22:23 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
O_79_O, А кто говорил что на сиквенсах будет быстрее? Ты это не обсуждал. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 22:26 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
У постгри поле счетчик это тот же сиквенс только скрытый системный)) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 22:27 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
O_79_O это все понятно ,я хочу разобоаться имеет ли смысл менять во всем проекте идентификаторы с идентити на sequnce - пока я вижу что время вставки стало хуже.А ведь именно изза этого и возникла такая задача. Априори очевидно, что при использовании последовательностей вам придётся сделать, как минимум, один запрос для получения списка последовательных значений, разобрать его и вставить каждое полученное значение в формируемый вами запрос. Вариантов распараллеливания без синхронизации как-то не очень просматривается, поэтому больше работы - больше затраты времени. Автоинкрементное поле, с другой стороны, выносит все ваши потуги на сторону СУБД. В этой ситуации полезно принимать две презумпции: 1. Другие люди не глупее вас; 2. В силу специализации они сталкивались с гораздо бОльшим количеством разных случаев и у них есть гораздо лучшие возможности для оптимизации разных частных вариантов. Вашего - в том числе. Например, проблему получения значений автоинкрементных полей при вставках - решает клауза RETURNING, если её поддерживает ваша СУБД и ваш инструментарий. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 23:51 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp O_79_O, А кто говорил что на сиквенсах будет быстрее? Ты это не обсуждал. блин ну логично же предположить,что булк инсерты в количестве 1000 выполнятся быстрей чем 50 000 инсертов но сдается мне хибер не умеет делать булк инсерты в прямом смысле этого слова похоже он просто берет пачку и в рамках одной транзакции ее шлет построчно и потом следом другую- тоесть фактичеки это будет теже самые 50000 инсертов ,да еще и разбитые на куски - поэтому и времени уходит больше в логах вот такой спам идет Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29.
как видно не пахнет никаким булк инсертом ,обычные инсерты вместо чего то такого Код: plsql 1.
очень и очень странно ,ведь в настройках все включено для этого и собственно подтверждается статистикой ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 23:58 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
Basil A. Sidorov O_79_O это все понятно ,я хочу разобоаться имеет ли смысл менять во всем проекте идентификаторы с идентити на sequnce - пока я вижу что время вставки стало хуже.А ведь именно изза этого и возникла такая задача. Априори очевидно, что при использовании последовательностей вам придётся сделать, как минимум, один запрос для получения списка последовательных значений, разобрать его и вставить каждое полученное значение в формируемый вами запрос. Вариантов распараллеливания без синхронизации как-то не очень просматривается, поэтому больше работы - больше затраты времени. Автоинкрементное поле, с другой стороны, выносит все ваши потуги на сторону СУБД. В этой ситуации полезно принимать две презумпции: 1. Другие люди не глупее вас; 2. В силу специализации они сталкивались с гораздо бОльшим количеством разных случаев и у них есть гораздо лучшие возможности для оптимизации разных частных вариантов. Вашего - в том числе. Например, проблему получения значений автоинкрементных полей при вставках - решает клауза RETURNING, если её поддерживает ваша СУБД и ваш инструментарий. тут проблема не в получении id ,а в том,что не исполняется булк инсерт ,вместо него хибер генерирует инсерты по количеству элементов в списке ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 00:08 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
O_79_O тут проблема не в получении id ,а в том,что не исполняется булк инсерт ,вместо него хибер генерирует инсерты по количеству элементов в списке Многострочные вставки (bulk insert в вашей терминологии) вещь, конечно, хорошая, но тут надо бы понимать некоторые вещи: 1. Многострочная вставка хороша тогда, когда у вас есть не очень много данных и суммарный размер запроса не превысит предельного размера запроса. В этом случае можно не возиться с параметризованными запросами, но получить выигрыш за счёт разовой подготовки запроса и нескольких вставок из литералов этого запроса. 2. Если же вам требуется много вставок, то параметризация запроса с разовой подготовкой (PrepareStatemnt или около того) с последующими вставками "по одной" может оказаться быстрее, чем меньшая по размеру пачка "литерных" многострочных вставок. 3. Можно, конечно, параметризовать и многострочную вставку, но это определённый геморрой, который, как минимум, потребует обработки последней вставки или/и возни генерацией разных многострочных запросов под разное количество вставок в каждом варианте. P.S. У Кайта есть вполне себе показательный пример как время подготовки запроса может в разы превышать время его исполнения. То, что Кайт пишет про вполне конкретную СУБД - ситуацию никак не меняет. Запрос исполняется не магией, а вполне конкретными этапами: формирование, передача, подготовка и собственно исполнение. Глупо, согласитесь, "оптимизировать" время исполнения, если остальные этапы занимают значимую долю общего времени. Такой же глупостью выглядят и ваши наносекунды - типичное "время неопределённости" из-за планирования потоков исполнения и ввода/вывода как вашего приложения так и СУБД будет в пределах долей миллисекунды. А просто читая длинные числа - легко "прокинуться" на порядок, а то и на два. P.P.S. И - да: неряшливость в оформлении результатов это плохо. Иногда - очень плохо. Совсем плохо, если это публичные результаты - не работает эгоистичное "а мне так норм". ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 01:07 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
и все же не понятно зачем вставлять такое количество? неужели нельзя ро одной записи? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 04:33 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
O_79_O, insert into b (id,a_id,name) values (1,2,'sss'),(2,2,'2312'); А ты в жизни то булк видел? ))))))))) Ну вот правда. Зачем это спринг, бут, хибер, если чел ни разу не видел пакетные записи))) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 06:41 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp O_79_O, insert into b (id,a_id,name) values (1,2,'sss'),(2,2,'2312'); А ты в жизни то булк видел? ))))))))) Ну вот правда. Зачем это спринг, бут, хибер, если чел ни разу не видел пакетные записи))) а ты сам то видел?)то что выше и есть булк инсерт лол ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 09:36 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
вадя и все же не понятно зачем вставлять такое количество? неужели нельзя ро одной записи? выгрузка в базу из файлов- очень часто используемая функция например ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 09:39 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
O_79_O в логах вот такой спам идет а если ты по ссылкам пойдешь, то найдешь еще что нужно PostgreSQL крутить ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 09:46 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
O_79_O, Выспался? Сделай пакет на jdbc и расскажи как работает. Или 20 страниц болтать будем? Я вижу что ты не знаешь что такое батч. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 09:50 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
Андрей Панфилов O_79_O в логах вот такой спам идет а если ты по ссылкам пойдешь, то найдешь еще что нужно PostgreSQL крутить я посмотрел логи бд ,а не логи хибера там идет построчный инсерт Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
но дата прокси сейчас подключу,но тут и по времени выполнения понятно,что нет ни какого булк инсерта ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 10:04 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp O_79_O, Выспался? Сделай пакет на jdbc и расскажи как работает. Или 20 страниц болтать будем? Я вижу что ты не знаешь что такое батч. дядь иди в тему постгрес - ты опять начинаешь в силу своих скудных знаний засирать тему вот как логируется булк Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 10:11 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
O_79_O, Правильно. Чтобы тебе красиво уйти с лужи, срочно займись флудом: - "я знаю булк, это ты не знаешь" - "не буду делать тесты так как и так все видно" - "засираешь тему, изыди )))))))) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2021, 10:22 |
|
|
start [/forum/topic.php?fid=59&msg=40085284&tid=2120389]: |
0ms |
get settings: |
25ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
61ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
587ms |
get tp. blocked users: |
1ms |
others: | 290ms |
total: | 1000ms |
0 / 0 |