Nein, kann ich nicht. Ich bekomme die daten schon in der Form.
Egal wie du sie bekommst:
Du kannst sie auch im Speicher in ein Dataset packen und dann damit arbeiten, ohne die Daten irgendwo auf einem Datenträger zu speichern.
Du könntest auch mit Array von Pointern für die einzelnen Marken arbeiten, womit das Kopieren der Recordinhalte wegfiele.
Wenn du aber vorher ein großes Array und hinterher mehrere kleine Arrays hast und das "nicht verhandelbar" ist, bleibt nicht viel Optimierungspotential übrig. Dass du die Länge der Ziel-Arrays am Anfang oder in Schritten setzen solltest und am Ende korrigieren, dürfte klar sein. Viel mehr kannst du dann aber kaum tun.