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.

Nota: la descripción detallada en los metadatos de cada control de lotes que se facilita con el sistema debe indicar si se puede ejecutar en paralelo. Tenga en cuenta que la estrategia usada no se suele indicar en la descripción detallada.
Nota: Sustitución de los rangos de threads. La implantación tiene la capacidad de sustituir los rangos de threads si determinados datos del sistema tardan más tiempo en procesarse. Por ejemplo, imagine que tiene una sola cuenta en Oracle Utilities Customer Care and Billing que tiene miles de acuerdos de servicio (tal vez la cuenta de una gran corporación o una gran ciudad). Puede configurar los rangos de threads para colocar esta cuenta de gran tamaño en su propio thread y distribuir las otras cuentas a los otros threads. Para hacerlo, debe crear los registros de thread de lote adecuados con antelación, con el estado Thread preparado (50) con los rangos de clave rellenados con anterioridad. Tenga en cuenta que el producto base no proporciona la capacidad de añadir registros de thread de lote en línea. Si está interesado en obtener más información sobre esta técnica, póngase en contacto con los servicios de soporte.