powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
25 сообщений из 164, страница 4 из 7
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
    #40085187
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
O_79_O,
>вот решение этой проблемы,ddl не меняется - меняем сущности
= то есть как я говорил - циклы не причем к первой ошибке. Не верный маппинг))
...
Рейтинг: 0 / 0
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
    #40085188
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
O_79_O,
>не знаю только насколько это хорошо
= будешь ленится делать тесты что просят мемберы - никогда не узнаешь.
Удачи!
...
Рейтинг: 0 / 0
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
    #40085196
O_79_O
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,
стой) а где коммент по 18 сек на инсерт? насколько это адекватное время вставки)
...
Рейтинг: 0 / 0
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
    #40085200
O_79_O
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
самое смешное во всей этой истории,что замена идентификатора с identity на sequence не дает ни какого прироста производительности
и даже наоборот время вставки увеличивается где то секунд на 30
это на вставке 50 к элементов

стата вот такая

идентити id

Код: plsql
1.
2.
3.
4.
 nanoseconds spent preparing 50500 JDBC statements;
     nanoseconds spent executing 50500 JDBC statements;
     nanoseconds spent executing 100 JDBC batches;
время выполения 6 м 50 секунд



sequence id

Код: plsql
1.
2.
3.
4.
 14803500 nanoseconds spent preparing 1013 JDBC statements;
    2552702500 nanoseconds spent executing 1010 JDBC statements;
    433145540000 nanoseconds spent executing 201 JDBC batches;
время выполения 7  м 20 секунд



я не пойму как такое возможно ведь если исходить из статистики тут как миниум во втором варианте вставка должна была пройти быстрей раз в 50
...
Рейтинг: 0 / 0
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
    #40085204
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
O_79_O
PetroNotC Sharp,
стой) а где коммент по 18 сек на инсерт? насколько это адекватное время вставки)
проще разобраться в лишних запросах. Свести их к минимуму.
...
Рейтинг: 0 / 0
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
    #40085209
O_79_O
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
O_79_O
PetroNotC Sharp,
стой) а где коммент по 18 сек на инсерт? насколько это адекватное время вставки)
проще разобраться в лишних запросах. Свести их к минимуму.

выше пример с секвенсом там нет ни одного лишего запроса

там всего 2552702500 nanoseconds spent executing 1010 JDBC statements;
а это как раз запрос в секвенс на пачку новых айдишников - так как сущноестей у нас 50 000 то и запросов было 1000
все остальное это 200 батчей ,правда странно почему батчей 200 ,если записей было сделено 50 000 к и размер батча у меня выставлен на 500 - батчей должно быть 101
...
Рейтинг: 0 / 0
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
    #40085211
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
O_79_O,
Уменьшить время в 100 и тысячу раз можно
- убрать ОРМ
- на ОРМ но sql запросы
- выкл FK и ключи, журналирование,... на время вставки
- пакетный режим
- кинуть файл на хост с бд
-...
...
Рейтинг: 0 / 0
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
    #40085212
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
O_79_O,
>выше пример с секвенсом там нет ни одного лишего запроса
= повтори на 50тыр вставкой без хибера. Если то же время то ты достиг потолка.
Далее резервы то что я описал выше.
...
Рейтинг: 0 / 0
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
    #40085213
O_79_O
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
O_79_O,
Уменьшить время в 100 и тысячу раз можно
- убрать ОРМ
- на ОРМ но sql запросы
- выкл FK и ключи, журналирование,... на время вставки
- пакетный режим
- кинуть файл на хост с бд
-...


это все понятно ,я хочу разобоаться имеет ли смысл менять во всем проекте идентификаторы с идентити на sequnce - пока я вижу что время вставки стало хуже.А ведь именно изза этого и возникла такая задача.
Поэтому у меня и остался вопрос - либо я что то не так делаю в рамках поставленной задачи- может есть какие то финты -но сейчас я вижу что смена типа идентификатора не дала ни какого прироста прозводительности ,хотя ведь все было с батчами- как такое возможно я не знаю- очень странная ситуация.
...
Рейтинг: 0 / 0
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
    #40085215
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
O_79_O,

А кто говорил что на сиквенсах будет быстрее?
Ты это не обсуждал.
...
Рейтинг: 0 / 0
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
    #40085216
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У постгри поле счетчик это тот же сиквенс только скрытый системный))
...
Рейтинг: 0 / 0
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
    #40085238
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
O_79_O
это все понятно ,я хочу разобоаться имеет ли смысл менять во всем проекте идентификаторы с идентити на sequnce - пока я вижу что время вставки стало хуже.А ведь именно изза этого и возникла такая задача.
Если вы такие умные, то почему вы такие тупые???

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

Автоинкрементное поле, с другой стороны, выносит все ваши потуги на сторону СУБД. В этой ситуации полезно принимать две презумпции:
1. Другие люди не глупее вас;
2. В силу специализации они сталкивались с гораздо бОльшим количеством разных случаев и у них есть гораздо лучшие возможности для оптимизации разных частных вариантов. Вашего - в том числе.

Например, проблему получения значений автоинкрементных полей при вставках - решает клауза RETURNING, если её поддерживает ваша СУБД и ваш инструментарий.
...
Рейтинг: 0 / 0
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
    #40085242
O_79_O
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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.
2021-07-21 23:48:16.095 DEBUG 24600 --- [nio-8080-exec-2] org.hibernate.SQL                        : 
    insert 
    into
        b
        (name, a_id, id) 
    values
        (?, ?, ?)
2021-07-21 23:48:16.095 DEBUG 24600 --- [nio-8080-exec-2] org.hibernate.SQL                        : 
    insert 
    into
        b
        (name, a_id, id) 
    values
        (?, ?, ?)
2021-07-21 23:48:16.096 DEBUG 24600 --- [nio-8080-exec-2] org.hibernate.SQL                        : 
    insert 
    into
        b
        (name, a_id, id) 
    values
        (?, ?, ?)
2021-07-21 23:48:16.097 DEBUG 24600 --- [nio-8080-exec-2] org.hibernate.SQL                        : 
    insert 
    into
        b
        (name, a_id, id) 
    values
        (?, ?, ?)
2021-07-21 23:48:16.097 DEBUG 24600 --- [nio-8080-exec-2] org.hibernate.SQL               



как видно не пахнет никаким булк инсертом ,обычные инсерты вместо чего то такого
Код: plsql
1.
insert into b (id,a_id,name) values (1,2,'sss'),(2,2,'2312');



очень и очень странно ,ведь в настройках все включено для этого и собственно подтверждается статистикой
...
Рейтинг: 0 / 0
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
    #40085245
O_79_O
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov
O_79_O
это все понятно ,я хочу разобоаться имеет ли смысл менять во всем проекте идентификаторы с идентити на sequnce - пока я вижу что время вставки стало хуже.А ведь именно изза этого и возникла такая задача.
Если вы такие умные, то почему вы такие тупые???

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

Автоинкрементное поле, с другой стороны, выносит все ваши потуги на сторону СУБД. В этой ситуации полезно принимать две презумпции:
1. Другие люди не глупее вас;
2. В силу специализации они сталкивались с гораздо бОльшим количеством разных случаев и у них есть гораздо лучшие возможности для оптимизации разных частных вариантов. Вашего - в том числе.

Например, проблему получения значений автоинкрементных полей при вставках - решает клауза RETURNING, если её поддерживает ваша СУБД и ваш инструментарий.

тут проблема не в получении id ,а в том,что не исполняется булк инсерт ,вместо него хибер генерирует инсерты по количеству элементов в списке
...
Рейтинг: 0 / 0
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
    #40085256
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
O_79_O
тут проблема не в получении id ,а в том,что не исполняется булк инсерт ,вместо него хибер генерирует инсерты по количеству элементов в списке
Вы, опять-таки, исходите из предположения, что серебрянная пуля есть. А это, между прочим, совсем не факт.

Многострочные вставки (bulk insert в вашей терминологии) вещь, конечно, хорошая, но тут надо бы понимать некоторые вещи:
1. Многострочная вставка хороша тогда, когда у вас есть не очень много данных и суммарный размер запроса не превысит предельного размера запроса. В этом случае можно не возиться с параметризованными запросами, но получить выигрыш за счёт разовой подготовки запроса и нескольких вставок из литералов этого запроса.
2. Если же вам требуется много вставок, то параметризация запроса с разовой подготовкой (PrepareStatemnt или около того) с последующими вставками "по одной" может оказаться быстрее, чем меньшая по размеру пачка "литерных" многострочных вставок.
3. Можно, конечно, параметризовать и многострочную вставку, но это определённый геморрой, который, как минимум, потребует обработки последней вставки или/и возни генерацией разных многострочных запросов под разное количество вставок в каждом варианте.

P.S.
У Кайта есть вполне себе показательный пример как время подготовки запроса может в разы превышать время его исполнения.
То, что Кайт пишет про вполне конкретную СУБД - ситуацию никак не меняет. Запрос исполняется не магией, а вполне конкретными этапами: формирование, передача, подготовка и собственно исполнение.
Глупо, согласитесь, "оптимизировать" время исполнения, если остальные этапы занимают значимую долю общего времени.

Такой же глупостью выглядят и ваши наносекунды - типичное "время неопределённости" из-за планирования потоков исполнения и ввода/вывода как вашего приложения так и СУБД будет в пределах долей миллисекунды. А просто читая длинные числа - легко "прокинуться" на порядок, а то и на два.

P.P.S.
И - да: неряшливость в оформлении результатов это плохо. Иногда - очень плохо. Совсем плохо, если это публичные результаты - не работает эгоистичное "а мне так норм".
...
Рейтинг: 0 / 0
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
    #40085264
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и все же не понятно зачем вставлять такое количество?
неужели нельзя ро одной записи?
...
Рейтинг: 0 / 0
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
    #40085268
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
O_79_O,
insert into b (id,a_id,name) values (1,2,'sss'),(2,2,'2312');
А ты в жизни то булк видел?
)))))))))
Ну вот правда.
Зачем это спринг, бут, хибер, если чел ни разу не видел пакетные записи)))
...
Рейтинг: 0 / 0
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
    #40085284
O_79_O
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
O_79_O,
insert into b (id,a_id,name) values (1,2,'sss'),(2,2,'2312');
А ты в жизни то булк видел?
)))))))))
Ну вот правда.
Зачем это спринг, бут, хибер, если чел ни разу не видел пакетные записи)))

а ты сам то видел?)то что выше и есть булк инсерт лол
...
Рейтинг: 0 / 0
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
    #40085285
O_79_O
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадя
и все же не понятно зачем вставлять такое количество?
неужели нельзя ро одной записи?

выгрузка в базу из файлов- очень часто используемая функция например
...
Рейтинг: 0 / 0
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
    #40085287
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
O_79_O
в логах вот такой спам идет
В интернетах пишут что хибер неправильно логгирует батчи: https://discourse.hibernate.org/t/hibernate-issuing-individual-insert-statements-even-though-batch-insert-is-enabled/2014/2
а если ты по ссылкам пойдешь, то найдешь еще что нужно PostgreSQL крутить
...
Рейтинг: 0 / 0
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
    #40085290
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
O_79_O,
Выспался?
Сделай пакет на jdbc и расскажи как работает.
Или 20 страниц болтать будем?
Я вижу что ты не знаешь что такое батч.
...
Рейтинг: 0 / 0
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
    #40085297
O_79_O
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Андрей Панфилов
O_79_O
в логах вот такой спам идет
В интернетах пишут что хибер неправильно логгирует батчи: https://discourse.hibernate.org/t/hibernate-issuing-individual-insert-statements-even-though-batch-insert-is-enabled/2014/2
а если ты по ссылкам пойдешь, то найдешь еще что нужно PostgreSQL крутить


я посмотрел логи бд ,а не логи хибера
там идет построчный инсерт
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
2021-07-22 00:05:24.331 MSK [24104] LOG:  duration: 0.018 ms  bind S_3: insert into a (name, id) values ($1, $2)
2021-07-22 00:05:24.331 MSK [24104] DETAIL:  parameters: $1 = 'a168', $2 = '169'
2021-07-22 00:05:24.332 MSK [24104] LOG:  execute S_3: insert into a (name, id) values ($1, $2)
2021-07-22 00:05:24.332 MSK [24104] DETAIL:  parameters: $1 = 'a168', $2 = '169'
2021-07-22 00:05:24.334 MSK [24104] LOG:  duration: 1.836 ms
2021-07-22 00:05:24.335 MSK [24104] LOG:  duration: 0.018 ms  bind S_3: insert into a (name, id) values ($1, $2)
2021-07-22 00:05:24.335 MSK [24104] DETAIL:  parameters: $1 = 'a169', $2 = '170'
2021-07-22 00:05:24.337 MSK [24104] LOG:  execute S_3: insert into a (name, id) values ($1, $2)
2021-07-22 00:05:24.337 MSK [24104] DETAIL:  parameters: $1 = 'a169', $2 = '170'
2021-07-22 00:05:24.338 MSK [24104] LOG:  duration: 2.128 ms
2021-07-22 00:05:24.339 MSK [24104] LOG:  duration: 0.007 ms  bind S_3: insert into a (name, id) values ($1, $2)



но дата прокси сейчас подключу,но тут и по времени выполнения понятно,что нет ни какого булк инсерта
...
Рейтинг: 0 / 0
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
    #40085300
O_79_O
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
O_79_O,
Выспался?
Сделай пакет на jdbc и расскажи как работает.
Или 20 страниц болтать будем?
Я вижу что ты не знаешь что такое батч.


дядь иди в тему постгрес - ты опять начинаешь в силу своих скудных знаний засирать тему

вот как логируется булк

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
2021-07-22 10:18:28.370 MSK [14824] LOG:  duration: 0.124 ms  parse <unnamed>: insert into b (a_id,name) values (2,'sss'),(2,'2312'),(2,'sds'),(2,'qdqdas'),

	                                 (2,'ssdqwe'),(2,'qweqw'),(2,'qweqwewq'),(2,'qweqw')
2021-07-22 10:18:28.371 MSK [14824] LOG:  duration: 0.136 ms  bind <unnamed>: insert into b (a_id,name) values (2,'sss'),(2,'2312'),(2,'sds'),(2,'qdqdas'),

	                                 (2,'ssdqwe'),(2,'qweqw'),(2,'qweqwewq'),(2,'qweqw')
2021-07-22 10:18:28.372 MSK [14824] LOG:  execute <unnamed>: insert into b (a_id,name) values (2,'sss'),(2,'2312'),(2,'sds'),(2,'qdqdas'),

	                                 (2,'ssdqwe'),(2,'qweqw'),(2,'qweqwewq'),(2,'qweqw')
...
Рейтинг: 0 / 0
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
    #40085304
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
O_79_O,
Правильно. Чтобы тебе красиво уйти с лужи, срочно займись флудом:
- "я знаю булк, это ты не знаешь"
- "не буду делать тесты так как и так все видно"
- "засираешь тему, изыди
))))))))
...
Рейтинг: 0 / 0
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
    #40085308
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
O_79_O,

авторвыгрузка в базу из файлов- очень часто используемая функция напримертак это решается проще и быстре другими методами, а не через ж....
...
Рейтинг: 0 / 0
25 сообщений из 164, страница 4 из 7
Форумы / Java [игнор отключен] [закрыт для гостей] / Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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