sys.dm_exec_sessions
Изменения: 12 декабря 2006 г.
Возвращает одну строку для авторизованного сеанса SQL Server. sys.dm_exec_sessions является представлением сервера, которое отображает сведения обо всех активных пользовательских соединениях и внутренних задачах. Эти сведения включают в себя данные о версии клиента, имени клиентской программы, времени входа, имени входа пользователя, текущих настройках сеанса и т.д. Для первоначального ознакомления с текущей нагрузкой системы и определения интересующего сеанса используйте представление sys.dm_exec_sessions, после чего более подробные сведения об этом сеансе могут быть получены с помощью других динамических административных представлений или функций динамического управления.
Динамические административные представления sys.dm_exec_connections, sys.dm_exec_sessions и sys.dm_exec_requests сопоставляются с системной таблицей sys.sysprocesses.
Имя столбца | Тип данных | Описание |
---|---|---|
session_id |
smallint |
Идентификатор сеанса, связанный со всеми активными первичными соединениями. Не допускает значения NULL. |
login_time |
datetime |
Время подключения сеанса. Допускает значение NULL. |
host_name |
nvarchar(128) |
Имя клиентской рабочей станции, указанное в сеансе. Для внутреннего сеанса это значение равно NULL. Допускает значение NULL. |
program_name |
nvarchar(128) |
Имя клиентской программы, которая инициировала сеанс. Для внутреннего сеанса это значение равно NULL. Допускает значение NULL. |
host_process_id |
int |
Идентификатор процесса клиентской программы, которая инициировала сеанс. Для внутреннего сеанса это значение равно NULL. Допускает значение NULL. |
client_version |
int |
Версия TDS-протокола интерфейса, который используется клиентом для подключения к серверу. Для внутреннего сеанса это значение равно NULL. Допускает значение NULL. |
client_interface_name |
nvarchar(32) |
Имя протокола, используемого клиентом для подключения к серверу. Для внутреннего сеанса это значение равно NULL. Допускает значение NULL. |
security_id |
varbinary(85) |
Идентификатор безопасности Microsoft Windows, связанный с именем входа. Не допускает значение NULL. |
login_name |
nvarchar(128) |
Имя входа SQL Server, под которым выполняется текущий сеанс. Чтобы узнать первоначальное имя входа, с помощью которого был создан сеанс, см. параметр original_login_name. Это может быть имя входа SQL Server, прошедшее проверку подлинности, либо имя пользователя домена Windows, прошедшее проверку подлинности. Не допускает значение NULL. |
nt_domain |
nvarchar(128) |
Домен Windows для клиента, если во время сеанса применяется проверка подлинности Windows или доверенное соединение. Для внутренних сеансов и пользователей, не принадлежащих к домену, это значение равно NULL. Допускает значение NULL. |
nt_user_name |
nvarchar(128) |
Имя пользователя Windows для клиента, если во время сеанса используется проверка подлинности Windows или доверенное соединение. Для внутренних сеансов и пользователей, не принадлежащих к домену, это значение равно NULL. Допускает значение NULL. |
status |
nvarchar(30) |
Состояние сеанса. Возможные значения.
Не допускает значение NULL. |
context_info |
varbinary(128) |
Значение параметра CONTEXT_INFO для сеанса. Контекстно-зависимые сведения устанавливаются пользователем с помощью инструкции SET CONTEXT_INFO. Допускает значение NULL. |
cpu_time |
int |
Время ЦП, использованное данным сеансом, в миллисекундах. Не допускает значение NULL. |
memory_usage |
int |
Количество 8-килобайтовых страниц памяти, используемых данным сеансом. Не допускает значение NULL. |
total_scheduled_time |
int |
Общее время, назначенное данному сеансу (включая его вложенные запросы) для исполнения, в миллисекундах. Не допускает значение NULL. |
total_elapsed_time |
int |
Время, прошедшее с момента установки сеанса в миллисекундах. Не допускает значение NULL. |
endpoint_id |
int |
Идентификатор конечной точки, связанный с сеансом. Не допускает значение NULL. |
last_request_start_time |
datetime |
Время, когда начался последний запрос данного сеанса. Это может быть запрос, выполняющийся в данный момент. Не допускает значение NULL. |
last_request_end_time |
datetime |
Время завершения последнего запроса в рамках данного сеанса. Допускает значение NULL. |
reads |
bigint |
Количество операций чтения, выполненных запросами данного сеанса. Не допускает значение NULL. |
writes |
bigint |
Количество операций записи, выполненных запросами данного сеанса. Не допускает значение NULL. |
logical_reads |
bigint |
Количество логических операций чтения, выполненных в данном сеансе. Не допускает значение NULL. |
is_user_process |
bit |
0, если сеанс является системным. В противном случае значение равно 1. Не допускает значения NULL. |
text_size |
int |
Значение параметра TEXTSIZE для данного сеанса. Не допускает значение NULL. |
language |
nvarchar(128) |
Значение параметра LANGUAGE для данного сеанса. Допускает значение NULL. |
date_format |
nvarchar(3) |
Значение параметра DATEFORMAT для данного сеанса. Допускает значение NULL. |
date_first |
smallint |
Значение параметра DATEFIRST для данного сеанса. Не допускает значение NULL. |
quoted_identifier |
bit |
Значение параметра QUOTED_IDENTIFIER для данного сеанса. Не допускает значение NULL. |
arithabort |
bit |
Значение параметра ARITHABORT для данного сеанса. Не допускает значение NULL. |
ansi_null_dflt_on |
bit |
Значение параметра ANSI_NULL_DFLT_ON для данного сеанса. Не допускает значение NULL. |
ansi_defaults |
bit |
Значение параметра ANSI_DEFAULTS для данного сеанса. Не допускает значение NULL. |
ansi_warnings |
bit |
Значение параметра ANSI_WARNINGS для данного сеанса. Не допускает значение NULL. |
ansi_padding |
bit |
Значение параметра ANSI_PADDING для данного сеанса. Не допускает значение NULL. |
ansi_nulls |
bit |
Значение параметра ANSI_NULLS для данного сеанса. Не допускает значение NULL. |
concat_null_yields_null |
bit |
Значение параметра CONCAT_NULL_YIELDS_NULL для данного сеанса. Не допускает значение NULL. |
transaction_isolation_level |
smallint |
Уровень изоляции транзакций данного сеанса: 0 = не указан; 1 = читать незафиксированные; 2 = читать зафиксированные; 3 = повторяемые результаты; 4 = сериализуемые; 5 = моментальный снимок. Не допускает значение NULL. |
lock_timeout |
int |
Значение параметра LOCK_TIMEOUT для данного сеанса. Значение указывается в миллисекундах. Не допускает значение NULL. |
deadlock_priority |
int |
Значение параметра DEADLOCK_PRIORITY для данного сеанса. Не допускает значение NULL. |
row_count |
bigint |
Количество строк, возвращенных сеансом на текущий момент времени. Не допускает значение NULL. |
prev_error |
int |
Идентификатор последней ошибки, возвращенной в данном сеансе. Не допускает значение NULL. |
original_security_id |
varbinary(85) |
Идентификатор безопасности Microsoft Windows, связанный с параметром original_login_name. Не допускает значение NULL. |
original_login_name |
nvarchar(128) |
Имя входа SQL Server, с помощью которого клиент создал данный сеанс. Это может быть имя входа SQL Server, прошедшее проверку подлинности, либо имя пользователя домена Windows, прошедшее проверку подлинности. Обратите внимание, что после первоначального соединения для сеанса может быть выполнено много неявных или явных контекстных переключений. Например, при использовании инструкции EXECUTE AS. Не допускает значение NULL. |
last_successful_logon |
datetime |
Время последнего успешного входа в систему для имени original_login_name до запуска текущего сеанса. |
last_unsuccessful_logon |
datetime |
Время последнего неуспешного входа в систему для имени original_login_name до запуска текущего сеанса. |
unsuccessful_logons |
bigint |
Число неуспешных попыток входа в систему для имени original_login_name между временем last_successful_logon и временем login_time. |
Разрешения
Требуется разрешение VIEW SERVER STATE для сервера.
Примечание. |
---|
Если у пользователя есть разрешение VIEW SERVER STATE для сервера, он увидит все выполняющиеся сеансы на экземпляре SQL Server. В противном случае видимым будет только текущий сеанс. |
Замечания
Статистика по входу в систему для соответствия стандарту Common Criteria
Если соответствие стандарту common criteria включено с помощью хранимой процедуры sp_configure, то статистика по входу в систему сохраняется и отображается в следующих столбцах sys.dm_exec_sessions:
- last_successful_logon
- last_unsuccessful_logon
- unsuccessful_logons
Если этот параметр конфигурации сервера не включен, то эти столбцы sys.dm_exec_sessions будут возвращать значения NULL. Дополнительные сведения о настройке этого параметра конфигурации сервера см. в разделе Параметр common criteria compliance enabled.
Мощности связи
От | Назначение | Подключить/Применить | Связь |
---|---|---|---|
sys.dm_exec_sessions |
sys.dm_exec_requests |
session_id |
Один к нулю или один ко многим. |
sys.dm_exec_sessions |
sys.dm_exec_connections |
session_id |
Один к нулю или один ко многим. |
sys.dm_exec_sessions |
sys.dm_tran_session_transactions |
session_id |
Один к нулю или один ко многим. |
sys.dm_exec_sessions |
sys.dm_exec_cursors(session_id | 0) |
session_id CROSS APPLY OUTER APPLY |
Один к нулю или один ко многим. |
sys.dm_exec_sessions |
Представление sys.dm_db_session_space_usage |
session_id |
Один к одному. |
Примеры
А. Поиск пользователей, подключенных к серверу
В следующем примере производится поиск пользователей, подключенных к серверу, и возвращаются сведения о числе сеансов для каждого пользователя.
SELECT login_name ,COUNT(session_id) AS session_count
FROM sys.dm_exec_sessions
GROUP BY login_name;
Б. Поиск курсоров, выполняющихся продолжительное время
В следующем примере производится поиск курсоров, открытых дольше заданного периода времени, определяются их создатели и соответствующие им сеансы.
USE master;
GO
SELECT creation_time ,cursor_id
,name ,c.session_id ,login_name
FROM sys.dm_exec_cursors(0) AS c
JOIN sys.dm_exec_sessions AS s
ON c.session_id = s.session_id
WHERE DATEDIFF(mi, c.creation_time, GETDATE()) > 5;
В. Поиск бездействующих сеансов, имеющих открытые транзакции
В следующем производится поиск сеансов, имеющих открытые транзакции, но при этом бездействующих. Бездействующим сеансом считается сеанс, который в настоящий момент не выполняет запросов.
SELECT s.*
FROM sys.dm_exec_sessions AS s
WHERE EXISTS
(
SELECT *
FROM sys.dm_tran_session_transactions AS t
WHERE t.session_id = s.session_id
)
AND NOT EXISTS
(
SELECT *
FROM sys.dm_exec_requests AS r
WHERE r.session_id = s.session_id
);
См. также
Справочник
Соответствия между системными таблицами SQL Server 2000 и системными представлениями SQL Server 2005
Динамические административные представления и функции
Динамические административные представления и соответствующие функции, связанные с выполнением
Другие ресурсы
Сертификация по стандарту Common Criteria
Справка и поддержка
Получение помощи по SQL Server 2005
Журнал изменений
Версия | Журнал |
---|---|
12 декабря 2006 г. |
|