В чем смысл состояний сеанса в SQL Server, таких как спящий режим, приостановление, запуск и т.д.

Я запутался в состояниях сеансов SQL Server. Кто-нибудь может объяснить это?

Ответ 1

От MSDN:

  • dormant = SQL Server сбрасывает сеанс.
  • running = В сеансе выполняется одна или несколько партий. Когда активировано множество активных наборов результатов (MARS), сеанс может запускаться несколькими партиями. Дополнительные сведения см. В разделе Использование нескольких активных наборов результатов (MARS).
  • background = В сеансе выполняется фоновое задание, такое как обнаружение блокировки.
  • rollback = сеанс имеет откат транзакции в процессе.
  • pending = сеанс ожидает, когда рабочий поток станет доступным.
  • runnable = Задача в сеансе находится в runnable queue планировщика, ожидая получения кванта времени.
  • spinloop = Задача в сеансе ожидает освобождения спин-блокировки.
  • suspended = сеанс ожидает завершения события, например ввода-вывода.

Ответ 2

Если вы ссылаетесь на состояние сеанса ASP.NET с использованием SQL Server, тогда строка сеанса хранится в таблице на SQL Server. Это позволяет использовать один и тот же сеанс для нескольких веб-серверов. В противном случае при использовании состояния сеанса ASP.NET InProc (In Process) система сохраняет сеанс в процессе на сингл-машине и может не использоваться в webfarm.