Ich schätze mal die 20% sind 13 % Deine Anwendung und 7% Firebird Server.
Auch wenn Du eine schnellere Platte hast wird das nicht viel ändern. Der Vorgang wird nur insgesamt nicht so lange dauern.
Mit Threading würden die CPU Zahlen steigen, sofern die Festplatte mehr Durchsatz hätte oder die Zugriffe effizienter gemacht würden.
Da Du sowieso schon parameterlose Volltext Inserts erzeugst, versuch doch mal, diese blockweise abzusetzen.
Also 1000 Datensätze einlesen, daraus 1000 Insert bauen, die in einem Schwung ausführen.
Damit reduzierst Du vermutlich den gesamten IO deutlich.
Der Vorschlag von Himitsu mit den
DB Bridges klingt auch gut.
Was den späteren Betrieb mit einer lokalen
DB angeht:
DB verwenden ja gern ihren Cache, um nicht immer wieder alles neu zu lesen. Das funktioniert idR ganz gut. Je mehr Cahce die
DB bekommt, desto weniger Plattenzugriffe fallen an.
Andernfalls externe Server nutzen oder
2. Festplatte einsetzen oder
Datenbanktuning oder Anwendungstuning