Habría que pasarle un profiler a ese código para ver dónde está tardando. O si no puedes, utilizar algún sistema de debug, para ver qué está tardando cada parte de ese código.
Depende de si tienes triggers y validaciones activadas en la base de Datos.
Hacer un commit cada X registros, como te han comentado, también ayudará.
El realizar refrescos de pantalla (progressbar y similares) también incrementa el tiempo (a veces más de lo que parece). Al igual que los commits, yo suelo hacer estos refrescos cada 1000 o 5000 registros...
Si puedes mantener la conexión abierta, en lugar de abrirla y cerrarla en cada registro, es posible que también ganes tiempo (me ha parecido que lo haces así).
|