Ver Mensaje Individual
  #2 (permalink)  
Antiguo 14/05/2014, 11:12
Avatar de chuidiang
chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Cómo optimizar la importación de datos desde un archivo plano a BD Postgre

¿Por qué lo haces por bloques?

Abre el fichero una sola vez, lee línea a línea e inserta cada línea.

Si quieres más eficiencia, no uses hibernate, usa directamente JDBC con PreparedStatement y Batch para inserciones http://chuwiki.chuidiang.org/index.p...Insert_en_Java

Otra forma eficiente (más posiblemente) es usar el comando sql copy de postgresql http://www.postgresql.org/docs/curre.../sql-copy.html que es capaz de leer e insertar un fichero que tenga un formato concreto. Quizás puedas hacer que tu programa java lea el fichero y lo convierta al formato que necesita postgresql para luego usar este comando copy.

Si tienes que hacerlo por bloques como muestras en el código y las líneas son de longitud fija, puedes usar la clase RandomAccessFile, que te permite abrir el fichero en un byte concreto, sin necesidad de leer todo secuencialmente.

Si las líneas no son de la misma longitud y tienes que hacerlo por bloques, no tienes opciones, salvo que sepas seguro que te van a llamar a loadData() consecutivamente, de forma que entre llamada y llamada podrías guardarte en qué byte del fichero estás y usar entonces RandomAccessFile para la siguiente llamada yendo directamente a ese byte.

Se bueno.
__________________
Apuntes Java
Wiki de Programación