Los smartlist en la versión 1.10.1.0, de tres de los clientes de panamá no muestran datos, principalmente los smartlist de consulta historial de pago y horas extras, estas tablas tiene una cantidad de registros de entre 800,000 y 2,000,000. En el servidor estas funcionan correctamente pero en las maquinas cliente no muestras nada, y no producen ningún error otro que timeout después de 5 minutos en algunas ocasiones. Se ha intentado reducir la consulta colocando filtros e incluso selecciones de TOP y no resuelve el problema en las maquinas cliente. ¿Existe alguna limitante en los smartlist? ¿Que medidas se deben tomar? |
En la pregunta está el indicio de la razón del problema: "En el servidor estas funcionan correctamente pero en las maquinas cliente no muestras nada, y no producen ningún error otro que timeout después de 5 minutos en algunas ocasiones" La diferencia entre el servidor y los clientes, es el tránsito en la red de esa cantidad de registros. El problema aumenta al sumar el tiempo de descarga de los datos. Y la otra diferencia son los recursos de memoria del servidor y de los clientes. El Smartlist no puede manejar esa cantidad de datos, una aplicación Web no puede trabajar con ese volumen de registros. Primero porque se requiere mucho procesamiento en el cliente (por el código Javascript) y mucha memoria. Y por otro lado, generar los datos para enviarlos al cliente, provoca que el servidor se sature y deje de procesar peticiones. Para mitigarlo pueden hacer lo siguiene: Desde el punto de vista de la base de datos ¿No creen que deberían tener una política de traslado de información histórica? ¿Ya revisaron índices y estadísticos, para reducir el tiempo de ejecución de los querys? Desde el punto de vista del SmartList Lo primero es no usar la versión Silverlight, porque esta versión tiene menor posibilidad de soportar grandes volúmenes de datos. Además, deben impedir que el SmartList lea datos de manera automática y deben configurar un QueryBuilder que le permita al usuario filtrar los datos, para retornar únicamente lo que desea ver (esta estrategia se configura en el SmartListTool). Me parece interesante que hallan intentado con la instrucción TOP, la cual me parece muy acertada para asegurarnos que si el usuario no especifica un filtro concreto, solamente retorne los primeros 10,000 registros, que me parece que es una cantidad aceptable para esas pantallas. Además, recuerden que en cada versión de Evolution se hacen mejoras sobre la infraestructura y me parece que la versión 1.10.1 es una versión muy antigua. De esa versión para acá, se ha mejorado la versión HTML para que sea más eficiente; entonces evalúen hacer un upgrade de versión. |