2009-02-17 4 views
1

В одном из моих приложений используется состояние сеанса sql, тайм-аут в настоящее время установлен на 20 минут. Мой вопрос в том, что, поскольку он хранится в базе данных, а не в памяти сервера, я должен иметь возможность увеличить тайм-аут без каких-либо существенных проблем с производительностью?sql session time out рекомендация

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

ответ

2

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

1

Я тоже искал подтверждение вашего мнения, что если место на жестком диске дешево, я должен иметь 8-часовые сеансы в SqlSessionState без заметных проблем с производительностью (за пределами того, что вызвало 20-минутный сеанс работы сервера sql), учитывая приложение для интрасети офисного уровня среднего размера.

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

И, наконец, если вы сохраняете токены аутентификации или роли в сеансе, вы можете захотеть истекли чаще, чтобы проверить, что пользователь по-прежнему является пользователем и все еще имеет эти роли.

0

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

Использование out-of-process mode позволяет сохранить контекст сеанса в случае повторных циклов IIS и требует менее прямых (используемых самими IIS) ресурсов памяти. Но это не имеет никакого отношения к тому, должен ли сеанс длиться 8 часов или 5 минут.