У меня была та же проблема в прошлом году, а затем, когда дело дошло до производительности, вместо того, чтобы взять временную таблицу для хранения записей (конец приложения или конец службы), O перешел в LINQ to SQL, создал хранимую процедуру и вызвал ее сущности, такие как LINQ для хранимой процедуры =). И моя хранимая процедура выполнила все и вернула только те записи, которые мне нужны, и я выполнила разбиение на страницы в конце хранимой процедуры, так что я получала ограниченные данные за раз, а не все данные в приложении.
Дайте мне знать, если вам нужна помощь в этом. Я также приведу фрагмент кода.