Использование набора данных Следует ли разбивать на страницы на сервере или в запросе к набору данных - PullRequest
0 голосов
/ 24 ноября 2018

Я использую строго типизированный набор данных для веб-сайта, который я создаю

Должен ли я изменить свой запрос к набору данных, чтобы каждый раз приносить по 10 результатов, или я должен использовать Linq и разбивать на страницы данные, которые я уже получил отсписок

Например, я могу использовать

List<T> newsList = news.GetList().Take(x).Skip(x);

или я могу пойти с

Select * from News Order By NewsId Desc Offset 0 Rows Fetch Next 1 Rows Only;

1 Ответ

0 голосов
/ 24 ноября 2018

Мое adivse к всегда делать разбиение на страницы и фильтрацию в запросе БД.Перемещение этого в пользовательский интерфейс только увеличивает нагрузку на сервер SQL, сеть, память.И, в худшем случае, обнаружение состояния гонки / условия запуска обновления.

Это еще более верно в WebDevelopment.Жизненный цикл страницы диктует, что страница должна быть построена, обработана обратная передача, отправлена ​​пользователю, а затем мгновенно выброшена из памяти.Вы должны приложить все усилия, чтобы сохранить данные, и это само по себе может вызвать массу проблем.ASP.Net еще более уязвим к исключениям OOM, чем обычные приложения .NET и запросы к БД, а linq всегда готов к исполнению: https://blogs.iis.net/webtopics/troubleshooting-system-outofmemoryexceptions-in-asp-net

...