DataTable в сессии или подкачки хранимых процедур в ASP.NET? - PullRequest
0 голосов
/ 05 апреля 2011

Что предпочтительнее:

  1. хранить 1000 записей в базе данных в сеансе и делать пейджинг, используя это?

Или

  1. делать пейджинг на уровне хранимой процедуры и каждый раз запрашивать 35 записей?

больше информации:

  • дата из 40 столбцов

  • количество пользователей - 200 пользователей

  • 7 приложение работает на IIS

  • Сервер БД Oracle не является тем же сервером для IIS

приветствуются любые другие решения / предложения / рекомендации

Редактировать: пользователь может обновить строку и отправить ее в базу данных. который обновит сетку, запросив все данные из базы данных.

Edit2: каждый пользователь загружает различные данные, которые поступают из одной таблицы в базе данных

Ответы [ 2 ]

0 голосов
/ 05 апреля 2011

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

Грубый расчет: 1000 * 40 * 200 * байт на столбец + служебные данные

Если DataTable совместно используется пользователями, вы можете поместить его в объект Application.

0 голосов
/ 05 апреля 2011

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

Размещение такого количества данных в сеансе не является хорошей идеей, поскольку эта информация не будет совместно использоваться несколькими пользователями (так как она находится в сеансе), а также снизит производительность в долгосрочной перспективе.И если вы расширите свою область до уровня приложения, было бы лучше использовать механизм кэширования, чтобы уменьшить объем используемой памяти в вашем приложении.

Только мой 2c,

Надеюсь, это поможет.

Редактировать: Если я правильно помню, DataTables не Serializable, поэтому вы не сможете сохранить их в сеансе в любом случае, вам придется использовать набор данных или набор данных.

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