|
Задачка. Как из ToArray() с генерировать запросы
|
|||
---|---|---|---|
#18+
Здравствуйте! Задача следующая, нужно данные из Excel переместить в базу данных. Первое я делаю массовую выгрузку данных из Excel в ToArray() Код: c# 1.
Пример набора данных из data Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Вторым шагом я хочу с генерировать запрос INSERT. Но как это сделать через linq не соображу :) Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
На выходе result должно получиться такой: Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 13:25 |
|
Задачка. Как из ToArray() с генерировать запросы
|
|||
---|---|---|---|
#18+
Nechto, через жо... Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Для массовой вставки не нужно так делать... для этого есть SqlBulkCopy или OracleBulkCopy или что вы там используете... Почти для каждой популярной бд имеются механизмы оптимизированный под массовую вставку.... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.08.2015, 15:55 |
|
Задачка. Как из ToArray() с генерировать запросы
|
|||
---|---|---|---|
#18+
buserNechto, через жо...Можно и не через "жо": Enumerable.Aggregate - метод buserДля массовой вставки не нужно так делать... для этого есть SqlBulkCopy или OracleBulkCopy или что вы там используете... Почти для каждой популярной бд имеются механизмы оптимизированный под массовую вставку....Массовая вставка одним батчем может работать достаточно быстро, чтобы не использовать "булк", имеющий свои ограничения. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2015, 04:45 |
|
Задачка. Как из ToArray() с генерировать запросы
|
|||
---|---|---|---|
#18+
Алексей КМассовая вставка одним батчем может работать достаточно быстро, чтобы не использовать "булк", имеющий свои ограничения. Если данных много, ещё можно отключить трекинг. Булк это когда данных совсем много, он очень ограниченный. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2015, 08:41 |
|
Задачка. Как из ToArray() с генерировать запросы
|
|||
---|---|---|---|
#18+
hVosttАлексей КМассовая вставка одним батчем может работать достаточно быстро, чтобы не использовать "булк", имеющий свои ограничения. Если данных много, ещё можно отключить трекинг.Батч запускается через DbCommand, трекинг тут не при чём. hVosttБулк это когда данных совсем много, он очень ограниченный.Да. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2015, 08:45 |
|
Задачка. Как из ToArray() с генерировать запросы
|
|||
---|---|---|---|
#18+
Алексей КБатч запускается через DbCommand, трекинг тут не при чём. Не, я имею в виду затолкать данные пачками в DbContext и сделать SaveChanges, чтобы это было быстро, надо отключить трекинг. И оно реально достаточно быстро работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2015, 10:30 |
|
Задачка. Как из ToArray() с генерировать запросы
|
|||
---|---|---|---|
#18+
hVosttАлексей КБатч запускается через DbCommand, трекинг тут не при чём. Не, я имею в виду затолкать данные пачками в DbContext и сделать SaveChanges, чтобы это было быстро, надо отключить трекинг.Ну я так и понял. hVosttИ оно реально достаточно быстро работает.Ну хз, у всех свои требования. Как по мне, так сохранять 200+ записей по 1 записи на батч - медленно. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2015, 10:33 |
|
Задачка. Как из ToArray() с генерировать запросы
|
|||
---|---|---|---|
#18+
Алексей КНу хз, у всех свои требования. Как по мне, так сохранять 200+ записей по 1 записи на батч - медленно. Надо снимать метрики. Я загружал БД в несколько гигов через контекст, без трекинга... было достаточно быстро. С батчем быстрее, но тогда можно попрощаться со всеми плюшками контекста, никакого разруливания навигационных связей, никакого M:M, никакого участия бизнес-логики... т.е. тут надо понимать что нужно и чем придётся пожертвовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2015, 12:10 |
|
Задачка. Как из ToArray() с генерировать запросы
|
|||
---|---|---|---|
#18+
hVosttС батчем быстрее, но тогда можно попрощаться со всеми плюшками контекста, никакого разруливания навигационных связей, никакого M:M, никакого участия бизнес-логики... т.е. тут надо понимать что нужно и чем придётся пожертвовать.Это да. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2015, 12:13 |
|
Задачка. Как из ToArray() с генерировать запросы
|
|||
---|---|---|---|
#18+
buserNechto, через жо... Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Для массовой вставки не нужно так делать... для этого есть SqlBulkCopy или OracleBulkCopy или что вы там используете... Почти для каждой популярной бд имеются механизмы оптимизированный под массовую вставку.... Спасибо! А про это почитаю SqlBulkCopy ... |
|||
:
Нравится:
Не нравится:
|
|||
20.08.2015, 12:49 |
|
|
start [/forum/topic.php?fid=17&msg=39032941&tid=1349510]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
138ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
others: | 232ms |
total: | 480ms |
0 / 0 |