Заполнение дроплистов в ASP.NET с помощью SQL Server занимает много времени. Какие-нибудь оптимизации? - PullRequest
0 голосов
/ 19 января 2010

Одна из моих веб-страниц заполняет выпадающий список примерно из 60 тыс. Элементов, извлеченных из SQL Server, и эта операция занимает более 10 секунд.Есть ли уловки или оптимизации, которые я могу попытаться улучшить производительность?Я использую SqlDataSource, настроенный как DataReader.

Спасибо за любую помощь.

Ответы [ 5 ]

2 голосов
/ 19 января 2010

60000 предметов будет слишком много как для производительности, так и с точки зрения пользователя. Попробуйте либо каскадный выпадающий список (если это имеет смысл), либо автозаполнение.

2 голосов
/ 19 января 2010

Любая операция, которая получает большой объем данных из БД, займет некоторое время.

Заполнение раскрывающегося списка таким количеством элементов также займет некоторое время, как и передача полученного HTML-кода в браузер.

Не говоря уже о том, что 60 тыс. Элементов в раскрывающемся списке не очень удобны в использовании.

Оптимизация состоит в том, чтобы изменить приложение, чтобы оно не требовало 60 тыс. Элементов за один раз.

Возможно, более подходящим является постраничный подход, когда вы получаете только небольшое подмножество данных за раз и можете отображать различные его части.

Вы можете рассмотреть автозаполнение как другой вариант.

1 голос
/ 19 января 2010

Проверьте, если вы делаете SELECT *

Изменить вызов базы данных на Хранимая процедура или Просмотр

Попробуйте выгрузить результат в ASP.Net Cache и проверьте, является ли он нулевым, перед повторным запросом базы данных.

0 голосов
/ 19 января 2010

Как уже заявляли другие, я думаю, вам следует потратить немного энергии на обдумывание необходимости извлечения 60 тыс. Записей за один выстрел. Разве вы не можете предоставить какую-то каскадную функциональность, чтобы одновременно требовалось только подмножество? Или, возможно, функция автозаполнения поиска? Должен быть лучший способ. И только подумайте, вы не только улучшите производительность базы данных, но и, скорее всего, улучшите удобство использования в процессе!

0 голосов
/ 19 января 2010

Я думаю, что помещать 60k в выпадающий список не очень полезно, я бы предложил перейти на какое-то решение auto complete .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...