Сначала проверьте ваш запрос. Как только вы получите его как можно быстрее (включая, возможно, предварительное кеширование данных каждую ночь во временной таблице или что-то в этом роде), перейдите к коду ASP.NET и сделайте это быстрее.
Выключите viewstate для вашей сетки, если можете. ViewState значительно увеличит размер вашей страницы. Часть вашей проблемы будет заключаться в том, чтобы просто обслуживать МБ необработанного HTML и viewstate, а затем отображать его.
Шаги, которые я бы предпринял:
- Отключить режим просмотра для сетки
- Если вы используете шаблоны в своих столбцах, попробуйте урезать их, комбинируя элементы управления, чтобы уменьшить количество повторяющихся привязок.
- По возможности используйте буквенные элементы управления в своих шаблонах (значительно легче, чем метки)
- Вытащите все стили и убедитесь, что вы используете css для уменьшения размера страницы.
- Если в ваших строках есть какой-либо javascript, рассмотрите возможность удаления любых встроенных сценариев и применения его после загрузки страницы с помощью Jquery или другого метода.
- Подумайте о подкачке ваших данных
Вы можете заставить записи 2k + работать на одной странице, но для этого придется сделать все очень жестко.
В крайнем случае, избавьтесь от сетки и просто используйте буквальный контроль и выводите сырой, чистый, жесткий HTML прямо к нему. Обязательно выключите viewstate для буквального управления и в этом случае.