Il problema nel ripartizionamento riscontrato è che il trigger riesce ad intercettare un singolo evento di insert con la conseguenza che anche se utilizzi uno strumento come copy alla fine dei fatti sara come fare:
BEGIN
insert into ....
COMMIT
per ogni singola insert, e da qui il grosso gap prestazionale...
Sarebbe bello poter creare delle variabili grobali nella transazione dove alla fine fai un begin commit su tutte le insert suddivise per tabella.