Как оптимизировать IPaginatedList?
У вас на входе в метод IEnumerable, что заставляет C# перечислить источник данных (SELECT * FROM source).
Чтобы вместо этого был сгенерирован запрос на количество нужно на вход получать IQueryable. Тогда сгенерируется запрос вида SELECT count(*) FROM source.
может быть сделать запрос на уровне базы данных