Optimiza recorrer lista de sólo lectura para el Cloud

Cuando escribimos código Velneo para ser ejecutado en el cliente (1º o 2º plano) y en ese código tenemos que recorrer lista de sólo lectura podemos encontrarnos con que la ejecución del proceso en Cloud no tiene un rendimiento óptimo.

El motivo es que cuando cargamos o buscamos registros de una tabla el comando de carga se ejecuta con gran velocidad, en muchos casos apenas se establece un socket entre el cliente y el servidor que le devuelve la lista de registros. Sin embargo, cuando ejecutamos el comando recorrer lista de sólo lectura vClient comprueba si el registro ya está en caché y en caso contrario pide los datos al servidor. Esto debemos tenerlo en cuenta ya que si, por ejemplo, la lista tiene 100 registros vClient realizará 100 peticiones al servidor.

¿Podemos optimizar esta situación?

Sí, la solución es muy sencilla y efectiva.

Tras cargar o buscar los registros y antes de ejecutar el comando recorrer lista de sólo lectura debemos incluir uno de los dos comandos de instrucción con carga de registros optimizada.

Comandos de instrucción optimizados

Existen dos comandos de instrucción optimizados para la carga de registros en bloque.

  • Ordenar lista
  • Filtrar lista

En ambos comandos de instrucción no es necesario especificar ningún campo de resolución en el primero o ninguna fórmula de filtro en el segundo.

En la imagen que vemos a continuación he puesto junto el código sin optimizar y optimizado. Como vemos la única diferencia es el comando de instrucción Ordenar lista, en este caso.

¿Y esto optimiza la lectura de los registros? ¿No se dice siempre que hay que evitar los comandos ordenar o filtrar?

Sí, es cierto que debemos evitar estos comandos siempre que sea posible, pero no es menos cierto que estos comandos están optimizados, es decir, que cuando se ejecutan tienen la virtud de leer los registros a ordenar o filtrar en bloques, por lo que en lugar de ejecutarse una petición por cada registro es posible que la carga de registros se produzca en una o unas pocas peticiones mejorando notablemente el rendimiento de nuestra aplicación sobre todo cuando se ejecuta en Cloud.

Un ejemplo

Recorrer con el proceso de ejemplo 500 facturas sin optimizar tardó 28 segundos. Las mismas facturas con optimización tardó 1 segundos. Ambas pruebas se hicieron sin tener ningún registro en caché. Como puedes observar la diferencia es abismal por lo que también se aprecia cuando lees cantidades pequeñas de registros.

Share This