Re: Inserciones en un fichero grande
De entrada, lo primero que se me ocurre es que lee/graba, lee/graba, ... es un claro candidato a transformarse en un Insert de SQL. Y un Insert no tiene por qué irse ralentizando con el tiempo. Además, le daría un repaso al asesor de índices de la base de datos. Es probable que si lo revisas te proponga crear índices, bien EVI, bien RADIX que agilicen bastante el proceso. Revisa los índices que te propone tanto para el fichero de origen como para el de destino. Saludos. Juan Carlos. --- https://paredes.info juancar...@paredes.info El 12/09/2018 11:55, Juan Carlos O. escribió: Buenos días a todos. Mi problema es el siguiente. Tengo un fichero muy grande. Como todos os podéis imaginar estamos hablado de varios millones de registros. Todos los días hay un proceso que incluye entre 20.000 y 50.000 registros en el fichero. Solo se incluyen, no hay ni actualizaciones no borrados. Resumiendo el proceso diario, lee y graba, lee y graba. El problema es que el proceso cada vez tarda mas. Lo que empezó tardando minutos, ahora tarda mas de dos horas. ¿Se os ocurre alguna forma de agilizarlo? Os doy algún dato mas. El proceso se ejecuta en batch. Por desgracia el fichero gordo, tiene varios índices, el físico se creó con clave, aunque mi ultimo intento para agilizarlo ha sido realizar las inserciones sobre un lógico sin clave no he conseguido nada destacable. Muchas gracias por el tiempo que habéis dedicado en leer esta parrafada. Saludos Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd ) Forum.Help400 © Publicaciones Help400, S.L. Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd ) Forum.Help400 © Publicaciones Help400, S.L.
Re: Inserciones en un fichero grande
Si lee de una tabla y graba en otra tabla una opción es cambiar con CHGPF y CHGLF *todos los índices* del archivo a *REBLD o *DLY de la tabla de grabas Otra opción es utilizar un indices EVI CREATE ENCODED VECTOR INDEX Library/EVI_Name ON Library/Table_Name (Column) WITH n DISTINCT VALUES El mié., 12 sept. 2018 a las 12:59, Juan Carlos O. () escribió: > Buenos días a todos. > > Mi problema es el siguiente. Tengo un fichero muy grande. Como todos os > podéis imaginar estamos hablado de varios millones de registros. Todos los > días hay un proceso que incluye entre 20.000 y 50.000 registros en el > fichero. Solo se incluyen, no hay ni actualizaciones no borrados. > Resumiendo el proceso diario, lee y graba, lee y graba. El problema es que > el proceso cada vez tarda mas. Lo que empezó tardando minutos, ahora tarda > mas de dos horas. > > ¿Se os ocurre alguna forma de agilizarlo? > > Os doy algún dato mas. El proceso se ejecuta en batch. Por desgracia el > fichero gordo, tiene varios índices, el físico se creó con clave, aunque mi > ultimo intento para agilizarlo ha sido realizar las inserciones sobre un > lógico sin clave no he conseguido nada destacable. > > Muchas gracias por el tiempo que habéis dedicado en leer esta parrafada. > > Saludos > > > > Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd ) > Forum.Help400 © Publicaciones Help400, S.L. Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd ) Forum.Help400 © Publicaciones Help400, S.L.
RE: Inserciones en un fichero grande
¿Piensas que el problema puede estar en operación de inserción? ¿Qué utilizas, RPG o SQL? ¿Se tienen que filtrar los registros entrantes? ¿Versión de S.O. y nivel de PTF? Nosotros hacemos algo muy parecido con uno de los ficheros de estadísticas (180 millones aprox), además con cálculos numéricos antes de la inserción. Se ejecuta en un proceso nocturno y en batch. Nosotros no apreciamos retardos, porque si los hubiera no tendríamos tiempo para cargar en Qlikview el fichero entero antes de las 9. Nosotros utilizamos un Power8, 7.2 TR8 Se me ocurren algunas ideas: - Hacer un test con fichero vacío y medir tiempos (diferencia tiempo de lectura de datos y grabación). Hacer la misma prueba con fichero lleno. - Si estás utilizando SQL para seleccionar los datos, comprueba si hay índices recomendados. - Crearía un pool de memoria específico para este trabajo e iría probando con diferentes tamaños de memoria. - ¿Descartas que no haya una sobrecarga en el sistema en la franja de ejecución del proceso? Esta última ocurrencia me surge porque nosotros hemos apreciado mejoras en el rendimiento cuando se reserva (o se asegura) al trabajo un determinado tamaño de memoria (sobre todo en procesos nocturnos). Si tienes suficiente memoria puedes probar. Mi opinión es que el proceso no debería relentizarse con el tiempo si el número de registros entrante siempre es estable. Lo cierto es que yo no sabría hacer mucho más (de momento). Javier Mora De: forum.help400-boun...@listas.combios.es [mailto:forum.help400-boun...@listas.combios.es] En nombre de Juan Carlos O. Enviado el: miércoles, 12 de septiembre de 2018 11:56 Para: forum.help400 Asunto: Inserciones en un fichero grande Buenos días a todos. Mi problema es el siguiente. Tengo un fichero muy grande. Como todos os podéis imaginar estamos hablado de varios millones de registros. Todos los días hay un proceso que incluye entre 20.000 y 50.000 registros en el fichero. Solo se incluyen, no hay ni actualizaciones no borrados. Resumiendo el proceso diario, lee y graba, lee y graba. El problema es que el proceso cada vez tarda mas. Lo que empezó tardando minutos, ahora tarda mas de dos horas. ¿Se os ocurre alguna forma de agilizarlo? Os doy algún dato mas. El proceso se ejecuta en batch. Por desgracia el fichero gordo, tiene varios índices, el físico se creó con clave, aunque mi ultimo intento para agilizarlo ha sido realizar las inserciones sobre un lógico sin clave no he conseguido nada destacable. Muchas gracias por el tiempo que habéis dedicado en leer esta parrafada. Saludos Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd ) Forum.Help400 © Publicaciones Help400, S.L.
Inserciones en un fichero grande
Buenos días a todos. Mi problema es el siguiente. Tengo un fichero muy grande. Como todos os podéis imaginar estamos hablado de varios millones de registros. Todos los días hay un proceso que incluye entre 20.000 y 50.000 registros en el fichero. Solo se incluyen, no hay ni actualizaciones no borrados. Resumiendo el proceso diario, lee y graba, lee y graba. El problema es que el proceso cada vez tarda mas. Lo que empezó tardando minutos, ahora tarda mas de dos horas. ¿Se os ocurre alguna forma de agilizarlo? Os doy algún dato mas. El proceso se ejecuta en batch. Por desgracia el fichero gordo, tiene varios índices, el físico se creó con clave, aunque mi ultimo intento para agilizarlo ha sido realizar las inserciones sobre un lógico sin clave no he conseguido nada destacable. Muchas gracias por el tiempo que habéis dedicado en leer esta parrafada. Saludos Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd ) Forum.Help400 © Publicaciones Help400, S.L.