Во-первых, то, что я опишу здесь, является небольшой частью более крупного процесса ETL, который уже существует.Поэтому, пожалуйста, не предлагайте перенести в SSIS или другую среду, потому что я не могу.
В этом процессе ETL для каждой таблицы в базе данных SQL-сервера, в которую вставляется, я:
- загрузка всех соответствующих xml в объект XElement
- , затем преобразование xml в типизированный набор данных datatable
- , затем использование объекта SqlBulkCopy для быстрой вставки данных в sqlтаблица сервера.
Но для одной таблицы при создании XElement я получаю исключение OutOfMemory.
Итак, теперь мне нужно итеративно обрабатывать данные порциями, но я не уверен, что это лучший способ сделать это.XML-файл хранится на том же компьютере, на котором выполняется процесс ETL.
Спасибо за любую помощь.
ОБНОВЛЕНИЕ
Я начинаю читать о классе XmlReader, который я никогда не использовал.Если кто-то думает, что это ответ, скажите, пожалуйста, и предоставьте любые рекомендации.