Хранение DataSet в ViewState или состоянии сеанса - PullRequest
4 голосов
/ 22 февраля 2012

В настоящее время я храню набор данных в ViewState, но это может повлиять на производительность страницы.

Можете ли вы предложить мне, могу ли я использовать Session или ViewState или любую другую альтернативу, которая не влияет на производительность?

Ответы [ 4 ]

3 голосов
/ 22 февраля 2012

Зачем вам нужно хранить весь набор данных? Если вам нужно, то делайте это в сессию. Если ваш сеанс "inproc", объект набора данных будет храниться в памяти (вы сохраняете некоторую производительность, потому что не будет сериализации).

Если бы я был вами, я бы проанализировал код и постарался не сохранять весь набор данных ни в одном сеансе, ни в представлении состояния - должен быть способ оптимизировать ваш код.

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

2 голосов
/ 18 февраля 2014

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

Cache["CacheItem1"] = "Cached Item 1";

И это как извлечь переменную после:

string cachedString;
cachedString = (string)Cache["CacheItem"];
1 голос
/ 22 февраля 2012

, как я думаю, хранение в сессии может помочь вам, но вам нужно подумать о следующих моментах

  1. Сколько пользователей использует ваше приложение?
  2. Сколько набор данных принимает размер? если это больше, то не храните его в сессии.

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

Вы можете проверить следующие ссылки

  1. Сеанс V / s Viewstate
1 голос
/ 22 февраля 2012

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

...