Leider nur mit stärkeren Maschinen!
Unicode ist ein 2-Byte-Zeichensatz (DBCS), d.h., dass alle Zeichenfelder mit Unicode nun den doppelten Platz benötigen. Dies betrifft auch Indizes und Indexbäume. Leider halbiert sich nun auch die max. nutzbare Indexlänge von 2KB (ich weiß nicht ob sich die inzwischen vergrößert hat).
Auch die Datenlänge einer Tabelle halbiert sich da ebenso auf 16KB.

Bei QRY/400 erklärt sich das, da QRY nicht in Unicode arbeitet sondern die Daten in SBCS mit der Job-CCSID umgewandelt werden müssen. Hier kommt also die Codewandlung als Laufzeit hinzu.

Bei CPYF weiß ich nicht wie der mit Unicode umgeht. Hier ist aber im Wesentlichen entscheidend, ob beim Ziel die Indizes aktiv sind oder nicht. Hier kann man Geschwindigkeit rausholen in dem man die Indizes vor dem CPYF deaktiviert und hinterher parallel (SBMJOB in eine JOBQ für mehrere Job's) wieder aktiviert.
Auch sollte man überlegen ob ein "insert into ... select * from ..." hier nicht effektiver ist.

Auch bei der Übergabe per ODBC/JDBC verdoppeln sich natürlich die Datenmengen!
Für ODBC kann man noch die Datenkomprimierung anschalten (wenn sie noch aus sein sollte).
Ansonsten helfen da nur schnellere Leitungen (bei GBit-Netzen eher sinnlos).