![]() |
|
Модераторы: gambit |
![]()
|
|
| amarenkov |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 21.2.2008 Где: Воронеж Репутация: нет Всего: нет |
Добрый день.
Есть 4 таблицы. Есть XML. Из XML читаю данные и гружу в базу. За один "шаг" чтения создаю 1 запись в одной таблице, 2 в другой, и по 5-6 в оставшихся 2-х. Таких "шагов" у меня 50 000. Сейчас с огромным скрипом проходит 6 000 шагов. При этом отжирается 600Мб памяти, и оочень долго выполнение висит на функции SaveChanges(false). Вопрос: как правильно использовать SaveChanges, AcceptAllChanges? Как, вообще, мне грамотно быстро загрузить эти данные в базу? Возможно не стоит использовать EF? Заранее спасибо |
|||
|
||||
| Idsa |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
Все логично: EF сначала заносит в кэш все записи, а потом пытается в рамках одной транзакции отправить все это в базу.
А что за задача решается? Насколько часто нужно ее выполнять? Насколько критично время выполнения/память? Потребление памяти можно снизить, чаще создавая контекст (например по контексту на каждую тысячу сущностей). Тогда неиспользуемые контексты будут подчищены сборщиком мусора. Правда, не уверен, удастся ли использовать одну транзакцию в рамках нескольких контекстов. В целом, если поставленную задачу нужно выполнить быстро и с минимальным потреблением памяти, стоит воспользоваться чистым ADO.NET. |
||||
|
|||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Базы данных под .NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |