Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Относится к:SQL Server
База данных SQL Azure
Управляемый экземпляр SQL Azure
Azure Synapse Analytics
SQL аналитическая конечная точка в Microsoft Fabric
Хранилище в Microsoft Fabric
SQL база данных в Microsoft Fabric
sys.dm_exec_sessions Динамический вид управления возвращает одну строку за каждую аутентифицированную сессию на SQL Server.
sys.dm_exec_sessions — это представление области сервера, отображающее сведения обо всех активных подключениях пользователей и внутренних задачах. Эти сведения включают в себя данные о версии клиента, имени клиентской программы, времени входа, имени входа пользователя, текущих настройках сеанса и т.д. Используется sys.dm_exec_sessions для первого просмотра текущей загрузки системы и определения интересующего сеанса, а затем получения дополнительных сведений об этом сеансе с помощью других динамических административных представлений или динамических функций управления.
sys.dm_exec_connections
sys.dm_exec_sessions Представление sys.dm_exec_requestsсовместимости системы sys.sysprocesses и динамические административные представления сопоставляются с устаревшим представлением совместимости системы.
Note
Чтобы назвать этот вид из Azure Synapse Analytics (только выделенный SQL-пул), см. sys.dm_pdw_nodes_exec_sessions. Используйте sys.dm_exec_sessions Azure Synapse Analytics (только серверный SQL-пул) или Microsoft Fabric.
| Название столбца | Тип данных | Нуллибельный | Описание |
|---|---|---|---|
session_id |
smallint | Нет | Идентификатор сеанса, связанный со всеми активными первичными соединениями. |
login_time |
datetime | Нет | Время подключения сеанса. Сессии, которые не полностью вошли в систему при запросе этого DMV, отображаются с временем входа .1900-01-01 |
host_name |
nvarchar(128) | Да | Название клиентской рабочей станции, специфичное для сессии. Значение — NULL для внутренних сеансов.Примечание по безопасности. Клиентское приложение предоставляет имя рабочей станции и может предоставлять неточные данные. Не полагаться на HOST_NAME функцию безопасности. |
program_name |
nvarchar(128) | Да | Имя клиентской программы, инициируемой сеансом. Значение — NULL для внутренних сеансов. |
host_process_id |
int | Да | Идентификатор процесса клиентской программы, которая инициировала сеанс. Значение — NULL для внутренних сеансов. |
client_version |
int | Да | TDS-версия интерфейса, используемого клиентом для подключения к серверу. Значение — NULL для внутренних сеансов. |
client_interface_name |
nvarchar(32) | Да | Название библиотеки или драйвера, используемого клиентом для связи с сервером. Значение — NULL для внутренних сеансов. |
security_id |
varbinary(85) | Нет | Идентификатор безопасности Windows, связанный с именем входа. |
login_name |
nvarchar(128) | Нет | Имя входа SQL Server, под которым выполняется текущий сеанс. Исходный имя входа, создавший сеанс, см. в разделе original_login_name. Может быть именем пользователя домена, прошедшим проверку подлинности SQL Server, или именем пользователя домена, прошедшим проверку подлинности Windows. |
nt_domain |
nvarchar(128) | Да | Домен Windows для клиента, если во время сеанса применяется проверка подлинности Windows или доверительное соединение. Это значение предназначено для внутренних сеансов и пользователей, не относящихся NULL к домену. |
nt_user_name |
nvarchar(128) | Да | Имя пользователя Windows для клиента, если во время сеанса используется проверка подлинности Windows или доверительное соединение. Это значение предназначено для внутренних сеансов и пользователей, не относящихся NULL к домену. |
status |
nvarchar(30) | Нет | Состояние сеанса. Возможные значения:Running — В настоящее время выполняется один или несколько запросовSleeping - В настоящее время выполнение запросов не выполняетсяDormant — Сеанс был сброшен из-за пула подключений и теперь находится в состоянии предварительной записи.Preconnect — Сеанс находится в классификаторе регулятора ресурсов. |
context_info |
varbinary(128) | Да |
CONTEXT_INFO значение сеанса. Пользователь задаёт контекстную информацию с помощью оператора SET CONTEXT_INFO . |
cpu_time |
int | Нет | Время ЦП в миллисекундах, используемое этим сеансом. |
memory_usage |
int | Нет | Количество 8-килобайтовых страниц памяти, используемых данным сеансом. |
total_scheduled_time |
int | Нет | Общее время, назначенное данному сеансу (включая его вложенные запросы) для исполнения, в миллисекундах. |
total_elapsed_time |
int | Нет | Время, прошедшее с момента установки сеанса в миллисекундах. |
endpoint_id |
int | Нет | Идентификатор конечной точки, связанной с сеансом. |
last_request_start_time |
datetime | Нет | Время, когда начался последний запрос данного сеанса. На этот раз включает текущий исполняемый запрос. |
last_request_end_time |
datetime | Да | Время завершения последнего запроса в рамках данного сеанса. |
reads |
bigint | Нет | Количество физических чтений, выполненных по запросам в этой сессии, за эту сессию. |
writes
1 |
bigint | Нет | Количество физических записей, выполненных по запросам в этой сессии, в течение этой сессии. |
logical_reads |
bigint | Нет | Количество логических операций чтения, выполняемых запросами в этом сеансе, во время этого сеанса. |
is_user_process |
bit | Нет |
0 Значение , если сеанс является системным сеансом. В противном случае возвращается 1. |
text_size |
int | Нет |
TEXTSIZE параметр сеанса. |
language |
nvarchar(128) | Да |
LANGUAGE параметр сеанса. |
date_format |
nvarchar(3) | Да |
DATEFORMAT параметр сеанса. |
date_first |
smallint | Нет |
DATEFIRST параметр сеанса. |
quoted_identifier |
bit | Нет |
QUOTED_IDENTIFIER параметр сеанса. |
arithabort |
bit | Нет |
ARITHABORT параметр сеанса. |
ansi_null_dflt_on |
bit | Нет |
ANSI_NULL_DFLT_ON параметр сеанса. |
ansi_defaults |
bit | Нет |
ANSI_DEFAULTS параметр сеанса. |
ansi_warnings |
bit | Нет |
ANSI_WARNINGS параметр сеанса. |
ansi_padding |
bit | Нет |
ANSI_PADDING параметр сеанса. |
ansi_nulls |
bit | Нет |
ANSI_NULLS параметр сеанса. |
concat_null_yields_null |
bit | Нет |
CONCAT_NULL_YIELDS_NULL параметр сеанса. |
transaction_isolation_level |
smallint | Нет | Уровень изоляции транзакции данного сеанса:0 = Unspecified1 = ReadUncommitted2 = ReadCommitted3 = RepeatableRead4 = Serializable5 = Snapshot |
lock_timeout |
int | Нет |
LOCK_TIMEOUT параметр сеанса. Значение указывается в миллисекундах. |
deadlock_priority |
int | Нет |
DEADLOCK_PRIORITY параметр сеанса. |
row_count |
bigint | Нет | Количество строк, возвращенных сеансом на текущий момент времени. |
prev_error |
int | Нет | Идентификатор последней ошибки, возвращенной в данном сеансе. |
original_security_id |
varbinary(85) | Нет | Идентификатор безопасности Windows, связанный original_login_nameс . |
original_login_name |
nvarchar(128) | Нет | Имя входа SQL Server, используемое клиентом для создания этого сеанса. Может быть именем входа, прошедшим проверку подлинности SQL Server, именем пользователя домена, прошедшим проверку подлинности Windows, или пользователем автономной базы данных. Сессия могла проходить через множество неявных или явных переключений контекста после начального соединения, например, если EXECUTE AS использовалось. |
last_successful_logon |
datetime | Да | Время последнего успешного входа в original_login_name систему до начала текущего сеанса. |
last_unsuccessful_logon |
datetime | Да | Время последней неудачной попытки входа в original_login_name систему до начала текущего сеанса. |
unsuccessful_logons |
bigint | Да | Число неудачных попыток входа между original_login_namelast_successful_logon и login_time. |
group_id |
int | Нет | Идентификатор группы рабочей нагрузки, которой принадлежит этот сеанс. |
database_id |
smallint | Нет | Идентификатор текущей базы данных для каждого сеанса. В База данных SQL Azure значения уникальны в одной базе данных или эластичном пуле, но не в логическом сервере. Применимо: SQL Server 2012 (11.x) и более поздних версий. |
authenticating_database_id |
int | Да | Идентификатор базы данных, выполняющей проверку подлинности участника. Для имен входа используется 0значение . Для пользователей автономной базы данных значением является идентификатор базы данных автономной базы данных.Применимо: SQL Server 2012 (11.x) и более поздних версий. |
open_transaction_count |
int | Нет | Количество открытых транзакций на сеанс. Применимо: SQL Server 2012 (11.x) и более поздних версий. |
pdw_node_id |
int | Нет | Идентификатор узла, на который находится это распределение. Применимо к: Azure Synapse Analytics. |
page_server_reads |
bigint | Нет | Количество операций чтения сервера страниц, выполняемых запросами в этом сеансе, во время этого сеанса. относится к: гипермасштабирование базы данных SQL Azure. |
contained_availability_group_id |
uniqueidentifier | Да | ID содержащейся группы доступности. Область применения: SQL Server 2022 (16.x) и более поздних версий. |
time_zone |
nvarchar(128) | Нет | Определяет значение текущего часового пояса сессии. По умолчанию — LOCAL. Если временной пояс сессии изменён, то значение содержит указанное значение часового пояса из name столбца в sys.time_zone_info системном представлении. |
1 Указывает, когда страница отмечена как «грязная» в буферном пуле. Это значение напрямую не соответствует реальным записям, потому что одна и та же страница может быть отмечена более одного раза. Эти счетчики агрегируются в конце партии.
Permissions
Каждый может просматривать свои собственные сведения о сеансе.
SQL Server 2019 (15.x) и более ранние версии требуют VIEW SERVER STATE просмотра всех сессий на сервере. SQL Server 2022 (16.x) и более поздние версии требуют наличия разрешения VIEW SERVER PERFORMANCE STATE на сервере.
База данных SQL Azure требует VIEW DATABASE STATE видеть все соединения с текущей базой данных. Вы не можете предоставить VIEW DATABASE STATE в master базе данных.
Замечания
Когда common criteria compliance enabled опция настройки сервера включена, следующие столбцы отображают статистику входа:
last_successful_logonlast_unsuccessful_logonunsuccessful_logons
Если common criteria compliance enabled опция не включена, эти столбцы возвращают null значения. Дополнительные сведения о настройке этого параметра конфигурации сервера см. в разделе "Конфигурация сервера": включена поддержка общих критериев.
Админские соединения в База данных SQL Azure видете одну строку за каждую аутентифицированную сессию.
sa Сессии, отображаемые в наборе результатов, не влияют на пользовательскую квоту для сессий. Неадминские соединения видят только информацию, связанную с их сессиями пользователей базы данных.
Из-за различий в том, как они записываются, open_transaction_count может не соответствовать sys.dm_tran_session_transactions.open_transaction_count.
Кратности связей
| От | Кому | Подключить/Применить | Relationship |
|---|---|---|---|
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 APPLYOUTER APPLY |
Один к нулю или один ко многим. |
sys.dm_exec_sessions |
sys.dm_db_session_space_usage | session_id |
Один к одному |
Examples
А. Поиск пользователей, подключенных к серверу
В следующем примере производится поиск пользователей, подключенных к серверу, и возвращаются сведения о числе сеансов для каждого пользователя.
SELECT login_name,
COUNT(session_id) AS session_count
FROM sys.dm_exec_sessions
GROUP BY login_name;
B. Поиск длительных курсоров
В следующем примере находятся курсоры, открытые более определенного периода времени, которые создали курсоры и на каком сеансе находятся курсоры.
USE master;
GO
SELECT creation_time,
cursor_id,
name,
c.session_id,
login_name
FROM sys.dm_exec_cursors(0) AS c
INNER JOIN sys.dm_exec_sessions AS s
ON c.session_id = s.session_id
WHERE DATEDIFF(mi, c.creation_time, GETDATE()) > 5;
C. Поиск бездействующих сеансов с открытыми транзакциями
В следующем производится поиск сеансов, имеющих открытые транзакции, но при этом бездействующих. Бездействующим сеансом считается сеанс, который в настоящий момент не выполняет запросов.
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);
D. Поиск сведений о собственном подключении запроса
В следующем примере собираются сведения о собственном подключении запроса:
SELECT c.session_id,
c.net_transport,
c.encrypt_option,
c.auth_scheme,
s.host_name,
s.program_name,
s.client_interface_name,
s.login_name,
s.nt_domain,
s.nt_user_name,
s.original_login_name,
c.connect_time,
s.login_time
FROM sys.dm_exec_connections AS c
INNER JOIN sys.dm_exec_sessions AS s
ON c.session_id = s.session_id
WHERE c.session_id = @@SPID;