Ver Mensaje Individual
  #2  
Viejo 30/07/09, 07:56:05
ballan ballan is offline
Senior Member
 
Fecha de Ingreso: oct 2006
Mensajes: 671
Esta pregunta es muy compleja y se necesitaria ver bien el codigo y mucho tiempo de analisis yo te digo lo que pienso desde mi desconocimiento d ela naturaleza del proceso que ejecutais

La primera optimizacion siempre debe ser reducir el flujo de datos de los select,
por ejemplo :

no hagas SELECT * si no necesitas todos los campos
acceder siempre a las tablas por campos claves y si no es posible plantear la posibilidad de crear un indice
intentar acotar al maximo para no traer lineas que no vamos a necesitar o que posteriormente vamos a rechazar

Teniendo en cuenta todo esto si el proceso es tan masivo deberia ejecutarse en fondo con lo que te evitarias los problemas de time out y podrias tener mas controlado el tema de quedarte sin memoria (existe un parametro que es la memoria asignada a los procesos en fondo podrias consultar con el BASIS si ese parametro se podria aumentar o incluso si hay la posibilidad de aumentarlo solo para un proceso especifico)

Un proceso ejecutado en fondo la unica limitacion que tiene es que no va a permitir al usuario interactuar con el por lo que si ese es tu caso deberias hacerlo asi y dejar que trabaje la maquina sin tener que hacer grandes modificaciones en el programa

Ya te digo que esto es una aproximacion, seguro que mas gente puede aportar otros puntos de vista
Responder Con Cita