Звучит так, будто вы отсортированы, но часто другим потенциальным подходом является сначала разделить данные. Очевидно, что это работает только с некоторыми преобразованиями (т. Е. Когда разные куски данных могут обрабатываться изолированно от целого), но тогда вы можете использовать простой синтаксический анализатор (а не DOM) для разделения на управляемые части, а затем обрабатывать каждый кусочек отдельно и собрать.
Поскольку я являюсь телом .NET, такие вещи, как XmlReader
, могут выполнять чанкинг без DOM; Я уверен, что есть эквиваленты для каждого языка.
Опять же - только для полноты.
[редактировать вопрос]
Я не знаю ни одного конкретного имени; возможно Разделяй и властвуй .
Для примера; если ваши данные на самом деле представляют собой плоский список похожих объектов, то вы можете просто разделить дочерние элементы первого уровня - то есть, вместо того, чтобы иметь 2M строк, вы разбиваете их на 10 лотов по 200K или 100 лотов по 20K. Я делал это раньше много раз для работы с большими объемами данных (например, загрузка кусков данных [все допустимо] и повторная сборка на сервере, чтобы каждая отдельная загрузка была достаточно маленькой, чтобы быть надежной).