Parlando del db, hai provato a commentare gli inserimenti e vedere il tempo di esecuzione di quanto migliora? Perchč probabilmente sono gli insert a mangiarsi la maggior parte del tempo.

Una prova che puoi fare č usare insert multiriga tipo:
codice:
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
Magari cominci con 100 inserimenti alla volta. E vedi se migliora la situazione.