mh.. se ogni record va comunque aggiornato o aggiunto prova ad utilizzare "REPLACE" al posto di "update + insert" e prova a controllare se il tempo totale scende ancora..

Ps. ma perchè usi una tabella temporanea e non scrivi direttamente nella tabella finale?