Die meisten RDBMS sind per Default nicht dafür konfiguriert, schnell löschen zu können. Falls es eine einmalige Sache ist (Migration) oder so, muss man da einfach durch.
Was u.a. je nach Datenmodell viel Last produzieren kann, ist nicht primär das Löschen der Datensätze selbst, sondern die zugehörige Überwachung von Constraints bzw. foreign key Constraints und das nachziehen (all) der zugehörigen, abhängigen Indices.
Abhilfe würde demnach verschaffen, solche Constraints zu deaktivieren oder zu löschen, ebenso alle "Nebenindices" der zu löchenden Tabelle, die nichts mit den Foreign Keys zu tun haben, sondern lediglich irgendwelche Suchen beschleunigen.
Anschließend dann neu anlegen (Constraints, Indices).
Constraints zu löschen, birgt natürlich ein gewisses Risiko.
Als weiche Maßnahme würde es ggF. auch helfen, vorhandene Untermengen (laut foreign keys), separat bzw. zuerst/unabhängig zu löschen.
P.S.:
Kenne mich mit
FB in der Praxis nicht so aus, vlt taugt sowas in der Art, um gezielt Indices zu aktivieren / deaktivieren:
http://www.firebirdfaq.org/faq274/