Un ejercicio que se puede hacer en estos casos es poner un break point en el método que maneja el evento de carga de la página, reproducir el evento que se quiere conocer (seleccionar un item de la paginación, en este caso) y seguir a partir del break point para ver qué tipo de consulta se hace. También podría ser realizar un trace a la base de datos y ver qué consultas se realizan y cuándo.
Pero yendo a lo más específico, me imagino que sí. No lo puedo asegurar porque no sé cómo está construida tu página, pero el funcionamiento del grid view es como lo estás describiendo.
Entre las soluciones posibles, podrías crear tu custom grid view que realizara el query específico para cada página o podrías implemetar un patrón DTO para almacenar la información de la tabla una sola vez y después bindear tu grid o cualquier control con ese objeto o, un poco más simple, crear un object data source que para cada página devuelva los registros necesarios (podés encontrar cientos de ejemplos en Internet, te paso uno que encontré en una búsqueda rápida en google: http://www.dotnetcurry.com/ShowArticle.aspx?ID=267&AspxAutoDetectCookieSupport=1).
Tené en cuenta que la performance también está dada por el desempeño de la consulta en la base de datos, si tenés acceso: revisá el diseño de las tablas, el diseño de las consultas, los planes de ejecución y los índices necesarios en las tablas.
C.S.
----- Original Message -----
From: Oscar Onorato [mailto:[email protected]]
To: [email protected]
Sent: Fri, 20 Nov 2009 01:21:01 -0300
Subject: [puntonet] manejo de memoria en la paginacion
Hola!! queria saber si tienen idea de que manera utiliza asp.net el tema de la paginación. cuando uso una grilla y habilito la paginación, el sistema carga toda la tabla en memoria o va trayendo los registros en la medida que los requiero?? pregunto esto porque necesito levantar una cantidad importante de registros y saber si lo tengo que hacer "a mano" , usando row_count por ejemplo. Se aceptan ideas..Muchas gracias!!
