Diseñar con detenimiento los flujos para optimizar el rendimiento es lo más importante que puede hacer a fin de alcanzar un buen rendimiento de Spectrum Technology Platform. En las siguientes pautas, se describen técnicas que puede emplear para optimizar el rendimiento de los flujos.
Reducción de la cantidad de etapas
Spectrum Technology Platform logra un alto rendimiento mediante el procesamiento paralelo. Cada etapa de un flujo se ejecuta de manera asincrónica en su propio subproceso. Sin embargo, es posible que los procesadores usen demasiados subprocesos al ejecutar determinados tipos de flujos. Cuando ocurre esto, el sistema tarda el mismo, o más, tiempo en administrar los subprocesos que en realizar el "verdadero trabajo". Se han observado flujos que tienen hasta 130 etapas independientes cuyo rendimiento es bastante deficiente en los servidores más pequeños con uno o dos procesadores.
Por lo tanto, lo primero que se debe tener en cuenta a la hora de diseñar flujos de buen rendimiento es utilizar tantas etapas como sean necesarias, pero no más de las que se precisan. Estos son algunos ejemplos de utilización de más etapas de lo necesario:
- Utilización de varios enrutadores condicionales cuando uno sería suficiente.
- Definición de varias etapas de transformación en lugar de combinar las transformaciones en una sola etapa.
Afortunadamente, por lo general es posible volver a diseñar estos flujos para eliminar etapas redundantes o innecesarias y mejorar el rendimiento.
Para flujos complejos, considere usar flujos o subflujos integrados con el fin de reducir los problemas del lienzo y facilitar la visualización y navegación del flujo. El uso de flujos integrados no representa una ventaja en cuanto al rendimiento del tiempo de ejecución, pero facilita el trabajo con flujos en Spectrum Enterprise Designer. El uso de subflujos para simplificar flujos complejos puede mejorar el rendimiento de Spectrum Enterprise Designer durante la edición de flujos.
Reducción de la longitud del registro
Como los datos pasan por varias etapas que se ejecutan de forma concurrente, otra de las consideraciones que se deben tener en cuenta es la longitud de los registros de entrada. Por lo general, la entrada que tiene registros más largos requiere más tiempo para ser procesada que la entrada con registros más cortos, porque hay más datos para leer, escribir y ordenar. Los flujos de datos que tienen muchas operaciones de ordenación, en particular, funcionarán mejor si la longitud del registro es reducida. En los casos en que la longitud de los registros es muy amplia, puede ser más rápido eliminar los campos innecesarios de la entrada antes de realizar el trabajo de Spectrum Technology Platform y, luego, volver a incorporarlos en el archivo de salida resultante.
Uso adecuado de la ordenación
Otra cuestión para considerar es la minimización de operaciones de ordenación. Por lo general, la ordenación lleva más tiempo que otras operaciones y puede ser problemática a medida que aumentan la cantidad y el tamaño de los registros de entrada. Sin embargo, muchas etapas de Spectrum Technology Platform requieren o prefieren que los datos de entrada estén ordenados. Por ejemplo, Spectrum Universal Addressing y Global Geocoding tienen un rendimiento óptimo si la entrada se ordena por país y código postal. Etapas como Intraflow Match (Cruce de intraflujo) e Interflow Match (Cruce de interflujo) requieren que la entrada esté ordenada según el campo "Agrupar por". En algunos casos, puede utilizarse una aplicación externa de orden para ordenar con anterioridad los datos de entrada, lo que puede llevar menos tiempo que ordenar dentro del flujo de datos de Spectrum Technology Platform.