Как уже предлагалось, разбиение на страницы является распространенным способом обработки большого количества записей в веб-приложениях.
Но если требуется показать все записи в выходных данных (например, для целей отчетности), то есть способ сделать это.
Вместо сохранения набора результатов в памяти на сервере вы также можете передавать данные клиенту. Этого можно достичь, используя DataReader вместо DataSet и отключив все механизмы кэширования.
Простой способ сделать это, например, использовать элемент управления SqlDataSource. Подключите источник данных к сетке, как обычно. Затем измените DataSourceMode в источнике данных с DataSet на DataReader. Отключите кэш вывода страницы, и вы готовы к работе.