none
mi aplicación me corre lento

    Pregunta

  • tengo la base de datos en una pc que hice como servidor y me conecto a ella mediante remoto, cuando hago los registros de datos y fotos que se estan almacenando en la base de datos hasta ahi va todo bien, el problema es cuando quiero visualizarlo en un datagridview y se han almacenado muchos registro se pone muy lento para ir bajando y viendo todos los registros. 

    no se si el problema de la lentitud es la computadora que tengo como servidor ya que tiene poca memoria ram, menos de 500 megas y el sistema operativo es windows 7

    lunes, 3 de octubre de 2016 17:59

Respuestas

  • Aunque 500 megas es poco para un Windows 7, máxime si además tiene instalado SQL Server, aún así debería funcionar relativamente rápido en cuanto a consultas a la base de datos una vez que se haya estabilizado y tenga cargadas en memoria las páginas que necesita (aunque sí que será bastante pesado durante el arranque).

    No creo que tu problema de velocidad con muchos registros venga del lado servidor, sino del cliente. Es bastante mala idea cargar muchos registros en un grid, especialmente si tienen información "pesada" tal como fotos. El grid se volverá muy lento en cuanto tengas unos cientos o unos miles de registros. Lo que se hace en estos casos es paginarlo, es decir, traer un número pequeño de registros, por ejemplo de 100 en 100, y darle al usuario la opción de pasar a la siguiente página o a la anterior. Esto se puede hacer con dos botones de "siguiente" y "anterior", o si quieres refinar el proceso, se puede hacer que el propio scroll del grid dispare la carga de los siguientes o anteriores registros, con lo que dará la apariencia visual de que los tiene todos, aunque en realidad en cada momento solo mantenga en memoria los que son visibles en pantalla, y los de arriba o abajo los cargue sobre la marcha al hacer scroll. Esto lógicamente es mucho más costoso de programar que cargarlos todos de golpe, pero si la velocidad es importante, puede merecer la pena el trabajo adicional que conlleva.

    lunes, 3 de octubre de 2016 19:03

Todas las respuestas

  • Aunque 500 megas es poco para un Windows 7, máxime si además tiene instalado SQL Server, aún así debería funcionar relativamente rápido en cuanto a consultas a la base de datos una vez que se haya estabilizado y tenga cargadas en memoria las páginas que necesita (aunque sí que será bastante pesado durante el arranque).

    No creo que tu problema de velocidad con muchos registros venga del lado servidor, sino del cliente. Es bastante mala idea cargar muchos registros en un grid, especialmente si tienen información "pesada" tal como fotos. El grid se volverá muy lento en cuanto tengas unos cientos o unos miles de registros. Lo que se hace en estos casos es paginarlo, es decir, traer un número pequeño de registros, por ejemplo de 100 en 100, y darle al usuario la opción de pasar a la siguiente página o a la anterior. Esto se puede hacer con dos botones de "siguiente" y "anterior", o si quieres refinar el proceso, se puede hacer que el propio scroll del grid dispare la carga de los siguientes o anteriores registros, con lo que dará la apariencia visual de que los tiene todos, aunque en realidad en cada momento solo mantenga en memoria los que son visibles en pantalla, y los de arriba o abajo los cargue sobre la marcha al hacer scroll. Esto lógicamente es mucho más costoso de programar que cargarlos todos de golpe, pero si la velocidad es importante, puede merecer la pena el trabajo adicional que conlleva.

    lunes, 3 de octubre de 2016 19:03
  • muchas gracias por responder, ya entendi. gracias!
    lunes, 3 de octubre de 2016 19:06