Sql SessionState Server и время ожидания - PullRequest
2 голосов
/ 10 февраля 2011

Привет, есть ли минус в использовании Sql Server в качестве сервера SessionState и увеличении времени ожидания до 2 недель?Моя цель - как можно дольше оставаться в системе при минимальном объеме памяти веб-сервера.

Ответы [ 2 ]

1 голос
/ 10 февраля 2011

Я думаю, что здесь вы можете немного запутать несколько понятий.

SessionState и "Logged In" могут означать две разные вещи.

SessionState представляет объекты / данные, хранящиеся в объекте «Session» в среде.Вход в систему пользователей обычно контролируется с помощью системы членства ASP.NET.У вас может быть пользователь, который имеет постоянный логин (Запомнить меня), но время сеанса истечет через 20 минут.Система все еще будет помнить их, но данные, которые были «кэшированы» для пользователя в сеансе, могут быть утеряны.

Если говорить непосредственно о вашем вопросе, да, есть НЕСКОЛЬКО проблем с этим типом подхода для состояния сеанса SQLи в зависимости от размера значений, передаваемых в сеанс, и трафика, он может быть более или менее экстремальным.

  • Эта информация все еще будет занимать память, только память жесткого дискасо стороны БД, но по мере роста вы можете увидеть снижение производительности.Одно только прекращение сеанса может вызвать кеширование огромных объемов данных.

  • По мере увеличения количества элементов сеанса производительность сеанса будет снижаться, а нагрузка на систему SQL Server будет увеличиваться.

  • В зависимости от размера сервера, лицензии SQL Server и трафика, у которого могут возникнуть проблемы с БД или аппаратными ограничениями при хранении сеанса в течение такого длительного времени.

1 голос
/ 10 февраля 2011

Какую информацию вы храните в сеансе?Они потребляют ресурсы сервера, и не рекомендуется поддерживать их в течение 2 недель.

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

...