Usuario
Tratar un millón de registros con GridView

Pregunta
-
Saludos comunidad, ocurre el siguiente problema, desde un procedimiento almacenado en sqlserver2000 llamo alrededor de 1 millon de registros, dicha tarea (Con muchos JOINS) se demora alrededor de 20 a 25 segundos, el punto es que cuando los retorna y los trabajo, el rellenar una clase con los resultado toma un minuto y algunos casos mas.
El código para llenar la clase es :while (conn.resultado.Read()) { contenedores.Add(new ContenedorGateIn() { fechaIngreso = conn.resultado[0].ToString(), unidad = conn.resultado[1].ToString(), tipo = conn.resultado[2].ToString(), armador = conn.resultado[3].ToString(), condicion = conn.resultado[5].ToString(), entradaAngamos = conn.resultado[6].ToString(), fechaDrt = conn.resultado[7].ToString(), drt = conn.resultado[8].ToString(), numTactIngreso = conn.resultado[9].ToString(), embarqueDescarga = conn.resultado[10].ToString(), ingresoNaveCalle = conn.resultado[11].ToString(), cliente = conn.resultado[12].ToString(), }); }
y en el cshtml tengo:
@model IEnumerable<ContenedoresEnDeposito.Models.ContenedorGateIn> @{ ViewBag.Title = "Pagina de prueba"; WebGrid grid = new WebGrid(ContenedoresEnDeposito.Models.ContenedorGateIn.Buscar()); } @grid.GetHtml(columns: new[] { grid.Column("unidad" , "Unidad"), grid.Column("fechaIngreso" , "Fecha de Ingreso"), grid.Column("tipo" , "Tipo") })
Mi duda es la siguiente, hay alguna forma de rellenar la clase mostrada en el primer código sin necesidad de utilizar un ciclo?, se puede optimizar de alguna forma ese ciclo?
Quedo atento.Saludos y gracias.
Todas las respuestas
-
hola
>>hay alguna forma de rellenar la clase mostrada en el primer código sin necesidad de utilizar un ciclo?, se puede optimizar de alguna forma ese ciclo?
es imposible y una locura trabajar ese volumen de datos
deberias proporcionar funcionalidad de paginado y filtrado de los datospara reducir la cantidad de entidades que necesitas mostrar al usuario
recuerda que mas alla de optimizar el for toda esa infor se debe transmitir por la red y mientras mas datos mas Mb tendras que enviar y eso demora
por eso debes reducir la cantidad de registros
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -
En ese caso al sp le pasaré dos valores mas, la cantidad de registros por vista y la página en la que se esta viendo, que opinas de esa solución?
Gracias me ayudaste a buscar una solución, aveces nos cegamos y no vemos las respuestas.
Gracias nuevamente!
-
>>la cantidad de registros por vista y la página en la que se esta viendo, que opinas de esa solución?
perfecto, es una buena idea
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina