11 secondi per 100 record?!? ...

hum... prova a fart dire quanto ci mette ad eseguire la query di update, magari causa un db poco ottimizzato le condizioni di where richiedono un lungo tempo per eseguire la query... nel qual caso, indicizza correttamente i campi della where, soprattutto se sono stringhe

il resto dello script non è che l'abbia capito molto sinceramente, cmq invece di aprire e chiudere il file ogni volta mettiti in blocco i dati nel database, probabilmente è più comodo