Pregunta

He desarrollado una aplicación de 3 niveles y tengo un problema sobre cómo llenar datos de una base de datos. Mi aplicación tiene una ventana que consulta grandes datos de la base de datos y este proceso lleva mucho tiempo. (Mi cliente está tan lejos del servidor y la conexión entre ellos es de 128 KB / s).

Entonces tengo que pensar en la solución para resolver este problema. La solución es rellenar x registros de datos cada y seg. (p. ej .: rellenar 10 registros para mostrar en la interfaz de usuario primero y luego mostrar más 10 filas cada 5 segundos).

¿Es esta una buena solución para resolver este problema? ¿Hay una mejor manera de resolver esto?

¿Fue útil?

Solución

Si es para fines de visualización, debería utilizar la paginación. Hay una variación de esto, donde la interfaz de usuario toma la siguiente " página " de registros cuando el usuario intenta acceder a más información con la barra de desplazamiento. Si necesita agregar datos, hágalo en la consulta, para que los datos completos no viajen a través de la red. Si realmente / absolutamente tiene que obtener todos los datos y hacer algunos procesos con ellos, considere si es o alguna vez será demasiado grande para cargar todos a la vez. En ese caso, tome fragmentos de los datos, ejecute procesos relacionados y luego tome otro fragmento (etc.). En cualquier caso, debe hacerlo con un enfoque que no bloquee la IU (subprocesos / operaciones asíncronas).

Otros consejos

Freddy me ganó, pero como ejemplo, notará que muchos espectadores de la base de datos solo llenan los datos requeridos en el campo de visión, al usar las barras de desplazamiento que capturan automáticamente la siguiente página / vista de datos .

Si piensas en los sitios web, casi siempre se paginarán los datos para que no se carguen todos a la vez.

¿Es una opción realizar una carga diferida (por lo que estaría cargando datos a pedido, no todos a la vez)?

Tal vez si la IU de la aplicación lo permite, mostrar registros en varias páginas.

También sugeriría usar llamadas asíncronas para recuperar datos para no congelar la aplicación durante la consulta (si es la aplicación de escritorio).

Si es su aplicación web, considera usar AJAX.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top