Я использую класс PagedList в своем веб-приложении, с которым многие из вас могут быть знакомы, если вы что-то делали с ASP.NET MVC и LINQ to SQL. О нем пишут Роб Конери , и подобное воплощение было включено в такие вещи, как Nerd Dinner и т. Д. Это прекрасно работает, но мой администратор БД поднял опасения по поводу потенциальных будущих проблем с производительностью ,
Его проблема связана с SELECT COUNT (*), который выдается в результате этой строки:
TotalCount = source.Count();
Любое действие, в котором данные разбиты на страницы, запускает дополнительный запрос (как показано ниже) в результате вызова метода IQueryable.Count ():
SELECT COUNT(*) AS [value] FROM [dbo].[Products] AS [t0]
Есть ли лучший способ справиться с этим? Я подумал об использовании свойства Count класса PagedList для получения количества элементов, но понял, что это не сработает, поскольку он учитывает только количество отображаемых элементов (но не общее количество).
Насколько сильно это повлияет на производительность моего приложения, когда в базе данных много данных?