Umesh AP Ответов: 2

Подкачка больших объемов данных в MVC с использованием пользовательской логики


Привет,
Я хочу реализовать Пейджинговый, Поисковый, Сортировка на большом объеме данных (скажем, БД имеет от 25 до 30 Лакхов записей) в MVC. При использовании опции подкачки по умолчанию в MVC (using
PagedList.Mvc
,
@Html.PagedListPager
все записи извлекаются для БД и только 100 записей отображаются на странице. Это отнимает много времени и использует больше памяти.
Как я могу реализовать пользовательскую логику в MVC, которая извлекает только точные 100 записей на страницу? В настоящее время я пробую оба подхода (используя EF и SP).
любое предложение.

Что я уже пробовал:

Я уже разработал примеры приложений с использованием EF &SP и реализовал пейджинг по умолчанию. Но оба подхода извлекают все записи из БД и затем применяют подкачку на стороне клиента. Это отнимает слишком много времени.

Umesh AP

@Maciej Los - как я уже говорил, я сделал примеры приложений с использованием EF &SP с пейджингом по умолчанию, но недостатком этого является то, что каждый раз, когда я перехожу на следующую страницу, весь набор данных извлекается из DB & затем пейджинг выполняется на клиенте. Мне не нужны целые данные каждый раз, но я хочу, чтобы только 100 записей были извлечены из БД для этой страницы & когда пользователь меняет страницу, только соответствующие 100 записей должны быть извлечены из БД & отображаются на экране.

2 Ответов

Рейтинг:
2

Umesh AP

Используя EF, ранее мой метод действий был -

public ActionResult Index(int? page)
{
      return View(db.TestUploadData2.ToList().ToPagedList(page ?? 1, 100));            
}


Но проблема вот в чем .ToList () вытягивает все из БД в память C#, а затем получает необходимые 100 записей, что увеличивает время выполнения и потребление памяти.
Использование следующего кода решает мою проблему (используя подход EF)

public ActionResult Index(int? page)
{
      return View(db.TestUploadData2.OrderBy(x => x.SrNo).ToPagedList(page ?? 1, 100));
}


С помощью SP-подхода я написал SP, который принимает PageNo в качестве параметра и возвращает общее количество записей из DB & 100 записей для этой страницы.
Но здесь моя проблема заключается в том, как отобразить управление пейджером в поле зрения.

Любое предложение для подхода SP.....


Maciej Los

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

Рейтинг:
0

Maciej Los

Извините,но вы не предоставили информацию о методе, который используете...

Я бы посоветовал прочитать это:
Подкачка больших результирующих наборов в ASP.NET[^].
Динамическая подкачка страниц в Entity Framework[^]
Эффективная подкачка страниц с помощью SQL-скрипта[^]


Umesh AP

@Maciej-Спасибо за поддержку ur.

Maciej Los

Всегда пожалуйста.