Недавно меня вызвали для работы над старым устаревшим веб-приложением .NET. Производительность в последнее время значительно снизилась, так как объем данных в системе увеличился в четыре раза. Все было хорошо в течение предыдущих 2 лет.
Он использовал файл .xsd для общения с хранимой процедурой, которая достаточно сузила результаты (но без подкачки страниц), и передавал их в GridView через ObjectDataSource.
Часть, которую я не могу понять , это занимает около 7 секунд, чтобы загрузить 1 результат, 140 или 1200. Это заняло долю секунды для 0 приведенных случаев. (GridView обрабатывает нумерацию страниц)
Используя профилировщик SQL, мы увидели, что запрос занимает 6,9 секунды. Выполнение одного и того же запроса с теми же параметрами заняло 100 мс в SQL Management Studio. Я изменил параметры, чтобы убедиться, что это не просто кэшированный результат. Долгое время ожидания надежно воспроизводится.
Я знаю, что реализация пейджинга должна быть сделана здесь, но сейчас я просто ретроспективно пытаюсь найти объяснение, почему страница выполняет одинаково плохо для маленьких и больших комплектов ...
(«Простой» дисплей GridView подходит для их нужд - не нужно контролировать HTML)