Вот что я планирую сделать:
Создайте временную таблицу с идентификаторами объектов всех строк, которые нужно экспортировать:
Insert into BatchTable (ID, Seq) Select (O.ID, Sequence.Next)
From MyObject O Where ...
В небольших единицах нагрузки нагрузки на объекты:
Select Min(B.Seq), Max(B.Seq) From BatchTable;
for (batch = minBatch; batch <= maxBatch; batch += size) {
beginTransaction();
results = query("Select O From MyObject O, BatchTable B
Where O.ID = B.ID and (? <= B.Seq AND B.Seq < ?)");
exportXML(results);
for (MyObject O : results) {
O.setProcessed(True);
O.update();
}
commit();
}