Estoy usando la clase PagedList en mi aplicación web que muchos de ustedes podrían estar familiarizados si ha estado haciendo algo con ASP.NET MVC y LINQ to SQL. Se ha escrito en el blog por Rob Conery, y una encarnación similar se incluyó en cosas como Nerd Dinner, etc. Funciona de maravilla, pero mi DBA ha planteado preocupaciones sobre posibles problemas de rendimiento futuro.LINQ to SQL Pagination y COUNT (*)
Su tema es alrededor del SELECT COUNT (*) que obtiene emitido como resultado de esta línea:
TotalCount = source.Count();
Cualquier acción que ha paginado datos disparar una consulta adicional (como abajo) como consecuencia del IQueryable.Count() llamada al método:
SELECT COUNT(*) AS [value] FROM [dbo].[Products] AS [t0]
¿hay una mejor manera de manejar esto? Consideré usar la propiedad Count de la clase PagedList para obtener el recuento de elementos, pero me di cuenta de que esto no funcionaría porque solo cuenta el número de elementos que se muestran actualmente (no el recuento total).
¿Cuánto impacto en el rendimiento causará esto a mi aplicación cuando hay una gran cantidad de datos en la base de datos?
upvoted con tanta fuerza que rompió internet. ;) Si una consulta de conteo adicional va a reducir el rendimiento de su base de datos, tiene algunos problemas serios. – jfar