Lentisimo importando datos ? como mejorar ?


([N1] leonardo daniel velazquez fuentes) #1

Hola estoy tratando de importar datos de una tabla, ya lo intente con un archivo de texto separado por comas, lentisimooooooooooooooo…, luego lei que se podia acceder a sqlite por odbc, y si efectivamente lo logre, va mucho mas “rapido” 2000 registros en 30 minutos :-/ son 84mil y pelos … es inaceptable… la cantidad de tiempo… y ni modo que me digan que la tabla es muy grande… en FoxPro, o en Adative Anyware que trae PowerBuilder, tengo mas registros y no batallo para importar de texto o de dbf’s. en Powerbuilder eh importado 40mil registros en 10 min utilizando datastore (los que lo conocen, es un datawindow no visual donde puedes importar y luego hacer un update a la b.d. )

Alguien le pasa lo mismo ?? aclaro que solo tengo el indice por ID para que no se esten actualizando mas indices y evitar que se haga lenta la importacion, pero ni asi…

Si las paso a foxpro ? mysql ? sera mas rapido dadas las limitaciones de sqlite ?


([N1] wikan) #2

Podrían ser varios factores que te relenticen:

  • Que el servidor este en cloud y las altas las da el cliente
  • Que la tabla tenga actualizaciones en cascada

([N4] gontorre) #3

Buenos días

Yo hice la importación de los datos en mi sistema desde archivos de texto y tardé un fin de semana completo. Si tienes actualizaciones y muchos índices el tema es peor aún. Como era una importación que iba a hacer una sola vez no me importó mucho. Me di la paliza el fin de semana y punto.

Lo que si te digo es que influye mucho la velocidad del microprocesador que tengas en la máquina del vServer. En mi caso, hice pruebas de importación en 2 máquinas: una con un I7 3.60 GHz y otra con 2 Xeon 2.5 Ghz, ambos con 16 GB de RAM

En la máquina con el I7 tardaba menos de la mitad.

Un saludo

Gonzalo Torre


([N1] vgegeo) #4

Quizas si explicas como lo estas haciendo, podamos echar un cable mejor:

-Como dice Wikan, los registros lanzan actualizaciones?
-numero de campos
-estas haciendo en primer plano o tercer plano

Yo tengo alguna importacion de ficheros CSV separados por “punto y coma”, y a pesar de que no he importado 84000, va bastante rapido


([N3] pacosatu) #5

Hola leonardo daniel velazquez fuentes.

Si has trabajado en entornos cliente/servidor ya sabrás que la importación masiva de datos es un tema delicado.
En los SGBDR existen herramientas que facilitan el trabajo (Bulk Insert).

En Velneo no disponemos de estas herramientas y por eso tenemos que ser muy precisos a la hora de ejecutar transacciones masivas. Lo ideal seria que la importación masiva se realizara sin activar transacción, dejando la tabla previamente en un estado especial preparada para recibir los nuevos registros, pero esto no es posible en Velneo.

En cualquier caso 2000 registros en 30 minutos es una barbaridad y está claro que lo estás haciendo mal.

Como dicen los compañeros:

  • Se supone que los datos a importar están validados y no van a romper la integridad de la base de datos.
  • Ejecución siempre en 3º plano.
  • Separa la importación en Transacciones más cortas, aunque no es obligatorio, y de esta forma puedes saber desde vClient como va la importación.
  • Por supuesto nada de Actualizaciones, triggers, etc … que no sean imprescindibles.

Ya verás como los tiempos mejoran.

Saludos
Paco Satué


([N1] leonardo daniel velazquez fuentes) #6

Hola a todos, pues no, no hay actualizaciones, triggers, ni indices extras, excepto el id



([N3] pacosatu) #7

Hola leonardo daniel velazquez fuentes.

¿ Estás ejecutando ese proceso en 3º plano ?
En tal caso debería de tardar 30 segundos como mucho.

Cuando estés realizando la importación, abre el vAdmin y mira cómo van creciendo las operaciones de la Transacción. Pon el refresco en “Muy rápido”. Si las operaciones van creciendo muy despacio o tarda mucho en cerrarse la Transacción una vez terminadas las operaciones es que tienes un problema en el vServer.

Revísalo
Saludos
Paco Satué


([N4] juan.pescapuerta) #8

Buenas tardes

Por mi experiencia, en la migración que hemos tenido
1.- En los datos los ponemos con “Modificar Solamente”
2.- Lanzamos los procesos en el servidor, con lo cual los fichero origen , deben estar en el servidor
3.- Evitamos que tenga actualizaciones, estas las condicionamos a que el usuario de importación bloque alas actualizaciones
Con esto hemos conseguido unas mejoras considerables


([N1] leonardo daniel velazquez fuentes) #9

a fin de cuentas lo baje a local… y listo…!


([N1] vgegeo) #10

Yo en su dia monté una importacion de pedidos, teniendo como origen un fichero de lineas de pedidos y en un volumen de 1000 lineas de pedidos no llegaba a 1 minuto el proceso.

El proceso consistia en:
-leer cada linea de pedido del fichero
-comprueba si el pedido existe
—si no existe, da de alta el maestro pedido y despues la linea de pedido
—si existe, da de alta unicamente la linea de pedido
-cada linea de pedido dada de alta, actualizaba un campo al maestro suyo

Se trataba la mayoria de los casos de 1 linea por pedido, por lo que casi se daban de alta tambien 1000 maestros.

Tal y como indica juan.pescapuerta esto se realizaba en servidor


([N3] pacosatu) #11

Hola leonardo daniel velazquez fuentes.

Vamos a ver. Todavía no me he enterado si la importación la has hecho en 1º plano o en 3º plano, en el equipo local o en Cloud.

¿ Qué es eso de … ? -->>

a fin de cuentas lo baje a local.. y listo…!

Por favor, cuenta en detalle la arquitectura de tu montaje y cómo lo has solucionado para que los demás lectores, si les ocurre lo mismo, saquen conclusiones válidas.

Saludos
Paco Satué


([N3] GSI) #12

Nuestros clientes hacen esto habitualmente, lo tenemos montado de la siguiente manera:

-Mediante sdv enviamos el fichero al Servidor
-Ejecutamos el proceso en 3P, procesar 150.000 registros viene tardando entre 25/30 segundos.

Nosotros utilizamos ficheros CSV para exportar/Importar tarifas, artículos, actualizar tablets, datos a Web, etc. va super rápido.


([N1] leonardo daniel velazquez fuentes) #13

Hola lo hice en local ya que solo esa tabla iba a importar, luego volvi a subir la solucion a Cloud y me soprende lo rapido que es al buscar por trozos de palabras.

Pero intentare la solucion que proponen de subir el archivo txt a la nube e importarlo desde el mismo server a ver como me va

[quote quote=42810]Hola leonardo daniel velazquez fuentes.

Vamos a ver. Todavía no me he enterado si la importación la has hecho en 1º plano o en 3º plano, en el equipo local o en Cloud.

¿ Qué es eso de … ? –>>

a fin de cuentas lo baje a local.. y listo…!
Por favor, cuenta en detalle la arquitectura de tu montaje y cómo lo has solucionado para que los demás lectores, si les ocurre lo mismo, saquen conclusiones válidas.

Saludos
Paco Satué

[/quote]