Procesos en segundo plano paralelos
Muchos procesos se han diseñado para ejecutarse en paralelo, a fin de acelerar la ejecución. Esto se refiere a la ejecución del proceso con varios “threads”.
El sistema proporciona dos estrategias para distribuir los datos a los diversos threads.
-
Select de SQL de nivel de thread. En ocasiones esta estrategia se denomina "iterador de threads". En esta estrategia, la tarea por lotes usa la clave primaria para determinar cómo distribuir de manera uniforme los rangos de clave a cada thread. Después, cada thread se encargará de seleccionar los registros. En esta estrategia, los threads también deben volver a seleccionar los datos de forma periódica para liberar el cursor, lo que mejora el rendimiento. Tenga en cuenta que esta es la estrategia recomendada, pero solo puede usarse si se dan las condiciones siguientes:
- Solo se están procesando los datos de un único objeto de mantenimiento.
- La clave primaria del objeto de mantenimiento es una clave generada por un único sistema numérico.
Nota: se pueden usar parámetros para sustituir el ID bajo y alto. Consulte Parámetros especificados en procesos en segundo plano para obtener más información. -
Select de SQL de nivel de tarea. A veces se la denomina la estrategia de “validación estándar”. En esta estrategia, primero se seleccionan todas las claves de los registros que procesarán la tarea por lotes y se almacenan en una tabla temporal. La tarea por lotes proporciona a cada thread un rango de claves que deberá procesar. Esta estrategia se usa si la tarea por lotes está procesando varios objetos de mantenimiento, si la clave primaria del objeto de mantenimiento tiene varias partes o si la clave primaria no es numérica.
La lógica de varios threads se basa en el hecho de que las claves primarias de los datos maestros y de transacciones suelen ser claves aleatorias generadas por el sistema. Además, si los datos están divididos en particiones, se espera que las particiones se realicen en función de la clave primaria.