Information
1) In jedem Fall die Daten in Blöcken (Chunks) holen!
2) Falls die ganze Tabelle eingelesen wird, OFFSET vermeiden, siehe Beispiel:
final long CHUNKSIZE = 5000; long lastID = 0L; Map<UID, FieldMeta<?>> mpFields = metaProvider.getAllEntityFieldsByEntity(entity); DbQueryBuilder builder = dataBaseHelper.getDbAccess().getQueryBuilder(); for (;;) { DbCondition cond = builder.plainCondition("t.INTID > " + lastID); CollectableSearchCondition csc = new CollectableDbCondition(cond); CollectableSearchExpression cse = new CollectableSearchExpression(csc); Collection<EntityObjectVO<Long>> lstEOs = entityObjectFacade.getEntityObjectsChunk(entity, mpFields.values(), null, cse, 0L, CHUNKSIZE - 1); if (lstEOs.isEmpty()) { return; } for (EntityObjectVO<Long> eo : lstEOs) { .... lastID = eo.getPrimaryKey(); } }
Überblick
Inhalte