Hola Alex, gracias por tu ayuda.
El fichero en cuestión tiene sólo tres índices y están de actualización inmediata. Es un archivo de estadísticas que se utiliza constantemente y los índices se crearon para optimizar las distintas consultas. Voy a ver el tema del pool. Estoy leyendo alguna documentación de Martí Riera sobre este tema y estoy buscando más información. Javier Mora El mié, 23 feb 2022 a las 10:11, Alex Martínez (<[email protected]>) escribió: > Hola > > Así rápidamente lo primero que se me ocurre es si se puede realizar alguna > optimización sobre el proceso y sus índices: > puedes cambiar los indices que no se utilizan en el proceso a CHGLF > MAINT(*DLY) y cuando acabe volver a cambiarlos a *IMMED > ten en cuenta que si tienes mucho indices con mantenimiento *IMMED es una > parte costosa del proceso > > Aqui comentan un técnica similar con SQL y unas tablas temporales > > https://www.ibm.com/mysupport/s/question/0D50z000060GJyMCAW/stopstart-index-update-beforeafter-table-purge?language=es > > Otra medida puede ser indicar en el WRKSHRPOOL + INTRO + F11 y revisar el > % mínimo/máximo de memoria para el pool de +INTERACT o para *BASE y evitar > que se resientan > > Tambien lo puedes ajustar con CHGSHRPOOL POOL(*INTERACT) MINPCT(20) > MAXPCT(80) por ejemplo > > Ya nos comentas > > SAlu2 > > > > El mié, 23 feb 2022 a las 9:39, datil400 (<[email protected]>) escribió: > >> Hola a tod@s, >> >> tengo que reconocer que después de 30 años trabajando en la plataforma no >> he sido capaz de entender/aprender cómo gestiona los trabajos el IBM i. Os >> planteo un problema que tengo relacionado con este tema. >> >> Tengo muchos procesos muy pesados que se ejecutan por lotes, normalmente >> por la noche para molestar lo menos posible. En la empresa se trabaja las >> 24 horas y estos procesos (aunque tardan mucho y se llevan mucho >> procesador) nunca han interferido con el tiempo de respuesta de los >> trabajos interactivos. >> >> En cambio, tengo un proceso muy concreto, que hace algo muy simple que es >> una limpieza de un archivo con millones de registros. Cada x tiempo se >> ejecuta para seleccionar una serie de registros, que se procesan uno a uno >> (se lee el original, se graba en otro archivo y se borrar del origen). >> Resumiento, es un bucle READ/WRITE/DELETE sobre unos cientos de miles de >> registros. >> >> Pues cuando se ejecuta este trabajo, el tiempo de respuesta de los >> trabajos interactivos se resiente muchísimo (varios segundos) y el resto de >> trabajos batch se retrasan incluso horas. >> >> Actualmente mi configuración es la estándar: pools de memoria *INTERACT y >> *BASE. Al trabajo en cuestión le he bajado la prioridad y la porción de >> tiempo (TIMESLICE) a niveles de risa. Además el trabajo se lleva muy poco >> procesador y muy poca memoria temporal. Aún así, no consigo mejorar los >> tiempos de respuesta. >> >> Tengo la sospecha que podría estar relacionado con los pools de memoria, >> ya que veo que *BASE está muy inflado (80-90% de la memoria) e *INTERACT el >> resto. Mientras que cuando este programa no está en ejecución los pools >> están repartidos a la mitad (aprox). >> >> ¿Alguna idea para conseguir un mejor tiempo de respuesta? >> >> Saludos y gracias por vuestros comentarios. >> >> Javier Mora >> ____________________________________________________ >> Ú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.
____________________________________________________ �nete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd ) Forum.Help400 � Publicaciones Help400, S.L.
