Hay 2 partes en esto:
- leyendo el archivo xml
- escribir en la base de datos
Para leer el archivo xml, este enlace http://csharptutorial.blogspot .com/2006/10/lectura-xml-rápida.html , muestra que se puede leer 1 MB en 2,4 segundos usando el lector de secuencias, eso sería 2400 segundos o 40 minutos (si mis matemáticas funcionan tan tarde) para un archivo de 1 GB.
Por lo que he leído, la forma más rápida de obtener datos en MySQL es usar LOAD DATA.
http://dev.mysql.com/doc/refman /5.1/es/cargar-datos.html
Por lo tanto, si puede leer los datos xml, escríbalos en archivos que puedan ser utilizados por LOAD DATA, luego ejecute LOAD DATA. El tiempo total puede ser inferior a las horas que está experimentando.