Naja, bei den großen Mengen ist warscheinlich der CPYF am schnellsten.
Hierbei können mehrere Parameter verwendet werden:

FROMKEY / TOKEY, wenn das Feld im Schlüssel ist

oder

INCREL((*IF FELDC *LT 2000))

Wichtig! In der Datei sollte FRCRATIO(*NONE) eingestellt werden, da sonst der Copy Satz für Satz kopiert und nicht geblockt (ca. Faktor 20-50) werden kann.

Diesen CPYF würde ich halt 2x machen (<2000 und >=2000) um die Daten zu trennen, dann per CLRPFM die alte Datei löschen und die verbliebenen Daten zurückkopieren.

Mit einem kleinen Programm gehts natülich etwas schneller, da 1 mal gelesen und 2 Mal geschrieben werden kann (COBOL ist da sogar ca. 1,5 mal schneller).

Den RGZPFM kannst du dir dann sparen.

Ggf. FRCRATIO wieder einschalten.

Natürlich solltest du Journale /Trigger vorher abschalten und hinterher wieder anschalten bzw. anhängen.