sys.dm_exec_sessions (Transact-SQL)sys.dm_exec_sessions (Transact-SQL)

Применимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions) ДаБаза данных SQL AzureAzure SQL DatabaseYesБаза данных SQL AzureAzure SQL DatabaseПрименимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions) ДаБаза данных SQL AzureAzure SQL DatabaseYesБаза данных SQL AzureAzure SQL Database

Возвращает по одной строке на каждый прошедший проверку подлинности сеанс, подключенный к SQL ServerSQL Server.Returns one row per authenticated session on SQL ServerSQL Server. sys. dm_exec_sessions — это представление области сервера, в котором отображаются сведения обо всех активных соединениях пользователей и внутренних задачах.sys.dm_exec_sessions is a server-scope view that shows information about all active user connections and internal tasks. Эти сведения включают в себя данные о версии клиента, имени клиентской программы, времени входа, имени входа пользователя, текущих настройках сеанса и т.д.This information includes client version, client program name, client login time, login user, current session setting, and more. Для первоначального ознакомления с текущей нагрузкой системы и определения интересующего сеанса используйте представление sys.dm_exec_sessions, после чего более подробные сведения об этом сеансе могут быть получены с помощью других динамических административных представлений или функций динамического управления.Use sys.dm_exec_sessions to first view the current system load and to identify a session of interest, and then learn more information about that session by using other dynamic management views or dynamic management functions.

Динамические административные представления sys. dm_exec_connections, sys. dm_exec_sessions и sys. dm_exec_requests сопоставляются с системной таблицей sys.sys .The sys.dm_exec_connections, sys.dm_exec_sessions, and sys.dm_exec_requests dynamic management views map to the sys.sysprocesses system table.

Примечание. Чтобы вызвать эту функцию из Azure Synapse Analytics (Хранилище данных SQL)Azure Synapse Analytics (SQL Data Warehouse) или Параллельное хранилище данныхParallel Data Warehouse , используйте имя sys. dm_pdw_nodes_exec_sessions.NOTE: To call this from Azure Synapse Analytics (Хранилище данных SQL)Azure Synapse Analytics (SQL Data Warehouse) or Параллельное хранилище данныхParallel Data Warehouse, use the name sys.dm_pdw_nodes_exec_sessions.

Имя столбцаColumn name Тип данныхData type Описание и сведения о конкретной версииDescription and version-specific information
session_idsession_id smallintsmallint Идентификатор сеанса, связанный со всеми активными первичными соединениями.Identifies the session associated with each active primary connection. Не допускает значение NULL.Is not nullable.
login_timelogin_time datetimedatetime Время подключения сеанса.Time when session was established. Не допускает значение NULL.Is not nullable. Сеансы, для которых не завершен вход в систему во время запроса этого динамического административного представления, отображаются с временем входа 1900-01-01 .Sessions that have not completed logging in at the time this DMV is queried are shown with a a login time of 1900-01-01.
host_namehost_name nvarchar(128)nvarchar(128) Имя клиентской рабочей станции, указанное в сеансе.Name of the client workstation that is specific to a session. Для внутреннего сеанса это значение равно NULL.The value is NULL for internal sessions. Допускает значение NULL.Is nullable.

Примечание по безопасности. Клиентское приложение предоставляет имя рабочей станции и может предоставлять неточные данные.Security Note: The client application provides the workstation name and can provide inaccurate data. Не следует полагаться на функцию HOST_NAME для обеспечения безопасности.Do not rely upon HOST_NAME as a security feature.
program_nameprogram_name nvarchar(128)nvarchar(128) Имя клиентской программы, которая инициировала сеанс.Name of client program that initiated the session. Для внутреннего сеанса это значение равно NULL.The value is NULL for internal sessions. Допускает значение NULL.Is nullable.
host_process_idhost_process_id intint Идентификатор процесса клиентской программы, которая инициировала сеанс.Process ID of the client program that initiated the session. Для внутреннего сеанса это значение равно NULL.The value is NULL for internal sessions. Допускает значение NULL.Is nullable.
client_versionclient_version intint Версия TDS-протокола интерфейса, который используется клиентом для подключения к серверу.TDS protocol version of the interface that is used by the client to connect to the server. Для внутреннего сеанса это значение равно NULL.The value is NULL for internal sessions. Допускает значение NULL.Is nullable.
client_interface_nameclient_interface_name nvarchar(32)nvarchar(32) Имя библиотеки или драйвера, используемое клиентом для обмена данными с сервером.Name of library/driver being used by the client to communicate with the server. Для внутреннего сеанса это значение равно NULL.The value is NULL for internal sessions. Допускает значение NULL.Is nullable.
security_idsecurity_id varbinary(85)varbinary(85) Идентификатор безопасности Microsoft Windows, связанный с именем входа.Microsoft Windows security ID associated with the login. Не допускает значение NULL.Is not nullable.
login_namelogin_name nvarchar(128)nvarchar(128) Имя входа SQL ServerSQL Server, под которым выполняется текущий сеанс.SQL ServerSQL Server login name under which the session is currently executing. Чтобы узнать первоначальное имя входа, с помощью которого был создан сеанс, см. параметр original_login_name.For the original login name that created the session, see original_login_name. Может быть именем входа, прошедшим проверку подлинности, SQL ServerSQL Server или именем пользователя домена, прошедшего проверку подлинности Windows.Can be a SQL ServerSQL Server authenticated login name or a Windows authenticated domain user name. Не допускает значение NULL.Is not nullable.
nt_domainnt_domain nvarchar(128)nvarchar(128) Область применения: SQL Server 2008SQL Server 2008 и более поздних версий.Applies to: SQL Server 2008SQL Server 2008 and later.

Домен Windows для клиента, если во время сеанса применяется проверка подлинности Windows или доверительное соединение.Windows domain for the client if the session is using Windows Authentication or a trusted connection. Для внутренних сеансов и пользователей, не принадлежащих к домену, это значение равно NULL.This value is NULL for internal sessions and non-domain users. Допускает значение NULL.Is nullable.
nt_user_nament_user_name nvarchar(128)nvarchar(128) Область применения: SQL Server 2008SQL Server 2008 и более поздних версий.Applies to: SQL Server 2008SQL Server 2008 and later.

Имя пользователя Windows для клиента, если во время сеанса используется проверка подлинности Windows или доверительное соединение.Windows user name for the client if the session is using Windows Authentication or a trusted connection. Для внутренних сеансов и пользователей, не принадлежащих к домену, это значение равно NULL.This value is NULL for internal sessions and non-domain users. Допускает значение NULL.Is nullable.
statusstatus nvarchar(30)nvarchar(30) Состояние сеанса.Status of the session. Возможные значения:Possible values:

Running — в данный момент выполняется один или несколько запросов.Running - Currently running one or more requests

Sleeping — в данный момент запросы не выполняются.Sleeping - Currently running no requests

Неактивный сеанс был сброшен из-за пула соединений и теперь находится в состоянии предварительного входа.Dormant - Session has been reset because of connection pooling and is now in prelogin state.

Preconnect — Сеанс находится в классификаторе регулятора ресурсов.Preconnect - Session is in the Resource Governor classifier.

Не допускает значение NULL.Is not nullable.
context_infocontext_info varbinary(128)varbinary(128) Значение параметра CONTEXT_INFO для сеанса.CONTEXT_INFO value for the session. Сведения о контексте задаются пользователем с помощью инструкции set CONTEXT_INFO .The context information is set by the user by using the SET CONTEXT_INFO statement. Допускает значение NULL.Is nullable.
cpu_timecpu_time intint Время ЦП, использованное данным сеансом, в миллисекундах.CPU time, in milliseconds, that was used by this session. Не допускает значение NULL.Is not nullable.
memory_usagememory_usage intint Количество 8-килобайтовых страниц памяти, используемых данным сеансом.Number of 8-KB pages of memory used by this session. Не допускает значение NULL.Is not nullable.
total_scheduled_timetotal_scheduled_time intint Общее время, назначенное данному сеансу (включая его вложенные запросы) для исполнения, в миллисекундах.Total time, in milliseconds, for which the session (requests within) were scheduled for execution. Не допускает значение NULL.Is not nullable.
total_elapsed_timetotal_elapsed_time intint Время, прошедшее с момента установки сеанса в миллисекундах.Time, in milliseconds, since the session was established. Не допускает значение NULL.Is not nullable.
endpoint_idendpoint_id intint Идентификатор конечной точки, связанный с сеансом.ID of the Endpoint associated with the session. Не допускает значение NULL.Is not nullable.
last_request_start_timelast_request_start_time datetimedatetime Время, когда начался последний запрос данного сеанса.Time at which the last request on the session began. Это может быть запрос, выполняющийся в данный момент.This includes the currently executing request. Не допускает значение NULL.Is not nullable.
last_request_end_timelast_request_end_time datetimedatetime Время завершения последнего запроса в рамках данного сеанса.Time of the last completion of a request on the session. Допускает значение NULL.Is nullable.
readsreads bigintbigint Количество операций чтения, выполненных запросами данного сеанса.Number of reads performed, by requests in this session, during this session. Не допускает значение NULL.Is not nullable.
writeswrites bigintbigint Количество операций записи, выполненных запросами данного сеанса.Number of writes performed, by requests in this session, during this session. Не допускает значение NULL.Is not nullable.
logical_readslogical_reads bigintbigint Количество логических операций чтения, выполненных в данном сеансе.Number of logical reads that have been performed on the session. Не допускает значение NULL.Is not nullable.
is_user_processis_user_process bitbit 0, если сеанс является системным.0 if the session is a system session. В противном случае значение равно 1.Otherwise, it is 1. Не допускает значение NULL.Is not nullable.
text_sizetext_size intint Значение параметра TEXTSIZE для данного сеанса.TEXTSIZE setting for the session. Не допускает значение NULL.Is not nullable.
языкlanguage nvarchar(128)nvarchar(128) Значение параметра LANGUAGE для данного сеанса.LANGUAGE setting for the session. Допускает значение NULL.Is nullable.
date_formatdate_format nvarchar (3)nvarchar(3) Значение параметра DATEFORMAT для данного сеанса.DATEFORMAT setting for the session. Допускает значение NULL.Is nullable.
date_firstdate_first smallintsmallint Значение параметра DATEFIRST для данного сеанса.DATEFIRST setting for the session. Не допускает значение NULL.Is not nullable.
quoted_identifierquoted_identifier bitbit Значение параметра QUOTED_IDENTIFIER для данного сеанса.QUOTED_IDENTIFIER setting for the session. Не допускает значение NULL.Is not nullable.
arithabortarithabort bitbit Значение параметра ARITHABORT для данного сеанса.ARITHABORT setting for the session. Не допускает значение NULL.Is not nullable.
ansi_null_dflt_onansi_null_dflt_on bitbit Значение параметра ANSI_NULL_DFLT_ON для данного сеанса.ANSI_NULL_DFLT_ON setting for the session. Не допускает значение NULL.Is not nullable.
ansi_defaultsansi_defaults bitbit Значение параметра ANSI_DEFAULTS для данного сеанса.ANSI_DEFAULTS setting for the session. Не допускает значение NULL.Is not nullable.
ansi_warningsansi_warnings bitbit Значение параметра ANSI_WARNINGS для данного сеанса.ANSI_WARNINGS setting for the session. Не допускает значение NULL.Is not nullable.
ansi_paddingansi_padding bitbit Значение параметра ANSI_PADDING для данного сеанса.ANSI_PADDING setting for the session. Не допускает значение NULL.Is not nullable.
ansi_nullsansi_nulls bitbit Значение параметра ANSI_NULLS для данного сеанса.ANSI_NULLS setting for the session. Не допускает значение NULL.Is not nullable.
concat_null_yields_nullconcat_null_yields_null bitbit Значение параметра CONCAT_NULL_YIELDS_NULL для данного сеанса.CONCAT_NULL_YIELDS_NULL setting for the session. Не допускает значение NULL.Is not nullable.
transaction_isolation_leveltransaction_isolation_level smallintsmallint Уровень изоляции транзакции данного сеанса:Transaction isolation level of the session.

0 = не указан;0 = Unspecified

1 = ReadUncommitted1 = ReadUncommitted

2 = читать зафиксированные;2 = ReadCommitted

3 = RepeatableRead3 = RepeatableRead

4 = сериализуемые;4 = Serializable

5 = моментальный снимок.5 = Snapshot

Не допускает значение NULL.Is not nullable.
lock_timeoutlock_timeout intint Значение параметра LOCK_TIMEOUT для данного сеанса.LOCK_TIMEOUT setting for the session. Значение указывается в миллисекундах.The value is in milliseconds. Не допускает значение NULL.Is not nullable.
deadlock_prioritydeadlock_priority intint Значение параметра DEADLOCK_PRIORITY для данного сеанса.DEADLOCK_PRIORITY setting for the session. Не допускает значение NULL.Is not nullable.
row_countrow_count bigintbigint Количество строк, возвращенных сеансом на текущий момент времени.Number of rows returned on the session up to this point. Не допускает значение NULL.Is not nullable.
prev_errorprev_error intint Идентификатор последней ошибки, возвращенной в данном сеансе.ID of the last error returned on the session. Не допускает значение NULL.Is not nullable.
original_security_idoriginal_security_id varbinary(85)varbinary(85) Идентификатор безопасности MicrosoftMicrosoft Windows, связанный с параметром original_login_name.MicrosoftMicrosoft Windows security ID that is associated with the original_login_name. Не допускает значение NULL.Is not nullable.
original_login_nameoriginal_login_name nvarchar(128)nvarchar(128) Имя входа SQL ServerSQL Server, с помощью которого клиент создал данный сеанс.SQL ServerSQL Server login name that the client used to create this session. Это может быть имя входа SQL ServerSQL Server, прошедшее проверку подлинности, имя пользователя домена Windows, прошедшее проверку подлинности, или пользователь автономной базы данных.Can be a SQL ServerSQL Server authenticated login name, a Windows authenticated domain user name, or a contained database user. Обратите внимание, что после первоначального соединения для сеанса может быть выполнено много неявных или явных переключений контекста.Note that the session could have gone through many implicit or explicit context switches after the initial connection. Например, если используется параметр EXECUTE AS .For example, if EXECUTE AS is used. Не допускает значение NULL.Is not nullable.
last_successful_logonlast_successful_logon datetimedatetime Область применения: SQL Server 2008SQL Server 2008 и более поздних версий.Applies to: SQL Server 2008SQL Server 2008 and later.

Время последнего успешного входа в систему для имени original_login_name до запуска текущего сеанса.Time of the last successful logon for the original_login_name before the current session started.
last_unsuccessful_logonlast_unsuccessful_logon datetimedatetime Область применения: SQL Server 2008SQL Server 2008 и более поздних версий.Applies to: SQL Server 2008SQL Server 2008 and later.

Время последнего неуспешного входа в систему для имени original_login_name до запуска текущего сеанса.Time of the last unsuccessful logon attempt for the original_login_name before the current session started.
unsuccessful_logonsunsuccessful_logons bigintbigint Область применения: SQL Server 2008SQL Server 2008 и более поздних версий.Applies to: SQL Server 2008SQL Server 2008 and later.

Число неуспешных попыток входа в систему для имени original_login_name между временем last_successful_logon и временем login_time.Number of unsuccessful logon attempts for the original_login_name between the last_successful_logon and login_time.
group_idgroup_id intint Идентификатор группы рабочей нагрузки, которой принадлежит этот сеанс.ID of the workload group to which this session belongs. Не допускает значение NULL.Is not nullable.
database_iddatabase_id smallintsmallint Область применения: SQL Server 2012 (11.x)SQL Server 2012 (11.x) и более поздних версий.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later.

Идентификатор текущей базы данных для каждого сеанса.ID of the current database for each session.
authenticating_database_idauthenticating_database_id intint Область применения: SQL Server 2012 (11.x)SQL Server 2012 (11.x) и более поздних версий.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later.

Идентификатор базы данных, выполняющей проверку подлинности участника.ID of the database authenticating the principal. Для имен входа это значение будет равно 0.For Logins, the value will be 0. Для пользователей автономной базы данных это значение будет содержать идентификатор автономной базы данных.For contained database users, the value will be the database ID of the contained database.
open_transaction_countopen_transaction_count intint Область применения: SQL Server 2012 (11.x)SQL Server 2012 (11.x) и более поздних версий.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) and later.

Количество открытых транзакций на сеанс.Number of open transactions per session.
pdw_node_idpdw_node_id intint Применимо к: Azure Synapse Analytics (Хранилище данных SQL)Azure Synapse Analytics (SQL Data Warehouse) ,Параллельное хранилище данныхParallel Data WarehouseApplies to: Azure Synapse Analytics (Хранилище данных SQL)Azure Synapse Analytics (SQL Data Warehouse), Параллельное хранилище данныхParallel Data Warehouse

Идентификатор узла, на котором находится данное распределение.The identifier for the node that this distribution is on.
page_server_readspage_server_reads bigintbigint Область применения: масштабирование базы данных SQL AzureApplies to: Azure SQL Database Hyperscale

Число операций чтения сервера страниц, выполненных запросами в этом сеансе во время этого сеанса.Number of page server reads performed, by requests in this session, during this session. Не допускает значение NULL.Is not nullable.

РазрешенияPermissions

Все могут просматривать свои сведения о сеансе.Everyone can see their own session information.
** SQL ServerSQL Server :** VIEW SERVER STATE SQL ServerSQL Server Для просмотра всех сеансов на сервере требуется разрешение.SQL ServerSQL Server: Requires VIEW SERVER STATE permission on SQL ServerSQL Server to see all sessions on the server.
** База данных SQLSQL Database :** Требуется VIEW DATABASE STATE для просмотра всех подключений к текущей базе данных.База данных SQLSQL Database: Requires VIEW DATABASE STATE to see all connections to the current database. VIEW DATABASE STATEне может быть предоставлено в master базе данных.VIEW DATABASE STATE cannot be granted in the master database.

ПримечанияRemarks

Если включен параметр конфигурации сервера « стандартные условия соответствия », статистика входа отображается в следующих столбцах.When the common criteria compliance enabled server configuration option is enabled, logon statistics are displayed in the following columns.

  • last_successful_logonlast_successful_logon

  • last_unsuccessful_logonlast_unsuccessful_logon

  • unsuccessful_logonsunsuccessful_logons

Если этот параметр не включен, то данные столбцы будут возвращать значения NULL.If this option is not enabled, these columns will return null values. Дополнительные сведения о том, как настроить этот параметр конфигурации сервера, см. в разделе Common условия_отбора with Enabled Configuration параметр конфигурации сервера.For more information about how to set this server configuration option, see common criteria compliance enabled Server Configuration Option.

Административные соединения в базе данных SQL Azure будут видеть одну строку для каждого сеанса, прошедшего проверку подлинности.The admin connections on Azure SQL Database will see one row per authenticated session. Сеансы SA, которые отображаются в результирующем наборе, не влияют на квоту пользователя на сеансы.The "sa" sessions that appear in the resultset, do not have any impact on the user quota for sessions. Подключения без прав администратора увидят только сведения, связанные с пользовательскими сеансами базы данных.The non-admin connections will only see information related to their database user sessions.

Количество элементов связейRelationship Cardinalities

Исходный типFrom КомуTo Подключить/ПрименитьOn/Apply СвязьRelationship
sys.dm_exec_sessionssys.dm_exec_sessions sys.dm_exec_requestssys.dm_exec_requests session_idsession_id Один к нулю или один ко многим.One-to-zero or one-to-many
sys.dm_exec_sessionssys.dm_exec_sessions sys.dm_exec_connectionssys.dm_exec_connections session_idsession_id Один к нулю или один ко многим.One-to-zero or one-to-many
sys.dm_exec_sessionssys.dm_exec_sessions sys.dm_tran_session_transactionssys.dm_tran_session_transactions session_idsession_id Один к нулю или один ко многим.One-to-zero or one-to-many
sys.dm_exec_sessionssys.dm_exec_sessions sys. dm_exec_cursors(session_id | 0)sys.dm_exec_cursors(session_id | 0) session_id CROSS APPLYsession_id CROSS APPLY

OUTER APPLYOUTER APPLY
Один к нулю или один ко многим.One-to-zero or one-to-many
sys.dm_exec_sessionssys.dm_exec_sessions sys.dm_db_session_space_usagesys.dm_db_session_space_usage session_idsession_id Один к одномуOne-to-one

ПримерыExamples

A.A. Поиск пользователей, подключенных к серверуFinding users that are connected to the server

В следующем примере производится поиск пользователей, подключенных к серверу, и возвращаются сведения о числе сеансов для каждого пользователя.The following example finds the users that are connected to the server and returns the number of sessions for each user.

SELECT login_name ,COUNT(session_id) AS session_count   
FROM sys.dm_exec_sessions   
GROUP BY login_name;  

Б.B. Поиск курсоров, выполняющихся продолжительное времяFinding long-running cursors

В следующем примере производится поиск курсоров, открытых дольше заданного периода времени, определяются их создатели и соответствующие им сеансы.The following example finds the cursors that have been open for more than a specific period of time, who created the cursors, and what session the cursors are on.

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;  

В.C. Поиск бездействующих сеансов, имеющих открытые транзакцииFinding idle sessions that have open transactions

В следующем производится поиск сеансов, имеющих открытые транзакции, но при этом бездействующих.The following example finds sessions that have open transactions and are idle. Бездействующим сеансом считается сеанс, который в настоящий момент не выполняет запросов.An idle session is one that has no request currently running.

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. Поиск сведений о собственном соединении запросовFinding information about a queries own connection

Типичный запрос для сбора сведений о собственном соединении запросов.Typical query to gather information about a queries own connection.

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  
JOIN sys.dm_exec_sessions AS s  
    ON c.session_id = s.session_id  
WHERE c.session_id = @@SPID;  

См. такжеSee Also

Динамические административные представления и функции ()Transact-SQL Dynamic Management Views and Functions (Transact-SQL)
Динамические административные представления и функции, связанные с выполнением (Transact-SQL)Execution Related Dynamic Management Views and Functions (Transact-SQL)