Hier werden dann halt immer 1000 Inserts an einem Stück an die Datenbank gegeben und von ihr verarbeitet, statt satzweise. Hab' sowas in de Art vor Jahren mal bei 'ner
SQL-Server-Datenbank gemacht, dass hat bei der zu verarbeitenden Datenmenge etliche Stunden Zeitersparnis gebracht.
Wenn es um maximum Speed mit Firebird geht, sammel die Daten als Insert Befehle zeilenweise mit Semikolon getrennt z.B. lokal in einer TStringlist (aber nicht mehr als 255 Befehle und nicht länger als 32kb) und übergebe die Werte direkt im Text (keine parameter benutzen). Danach dann noch eine Zeile mit "execute block as begin " davor und ein "end" an Ende dahinter und schick das in eine
Query.sql property und führ das aus mit
Query.execSql.
Damit sind auch aus Delphi heraus bis zu 10000 Inserts pro Sekunde in die Firebird
DB machbar.