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

APLICA-SE A: simSQL Server (a partir do 2008) simBanco de Dados SQL do Azure nãoSQL Data Warehouse do Azure nãoParallel Data Warehouse APPLIES TO: yesSQL Server (starting with 2008) yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Retorna uma linha por sessão autenticada no SQL ServerSQL Server.Returns one row per authenticated session on SQL ServerSQL Server. sys.dm_exec_sessions é uma exibição de escopo de servidor que mostra informações sobre todas as conexões de usuário ativas e tarefas internas.sys.dm_exec_sessions is a server-scope view that shows information about all active user connections and internal tasks. Essas informações contêm a versão de cliente, o nome do programa cliente, a hora do logon do cliente, o usuário do logon, a configuração da sessão atual, etc.This information includes client version, client program name, client login time, login user, current session setting, and more. Use sys.dm_exec_sessions para exibir primeiro a carga do sistema atual e identificar uma sessão de interesse e, depois, para obter mais informações sobre essa sessão usando outras exibições ou funções de gerenciamento dinâmicas.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.

As exibições de gerenciamento dinâmico. DM exec_requests, DM exec_sessions e exec_connections mapeiam para o sys. sysprocesses tabela do sistema.The sys.dm_exec_connections, sys.dm_exec_sessions, and sys.dm_exec_requests dynamic management views map to the sys.sysprocesses system table.

OBSERVAÇÃO: Chamá-lo partir Azure SQL Data WarehouseAzure SQL Data Warehouse ou Parallel Data WarehouseParallel Data Warehouse, use o nome sys.dm_pdw_nodes_exec_sessions.NOTE: To call this from Azure SQL Data WarehouseAzure SQL Data Warehouse or Parallel Data WarehouseParallel Data Warehouse, use the name sys.dm_pdw_nodes_exec_sessions.

Nome da colunaColumn name Tipo de dadosData type Descrição e informações específicas de versãoDescription and version-specific information
session_idsession_id smallintsmallint Identifica a sessão associada a cada conexão primária ativa.Identifies the session associated with each active primary connection. Não permite valor nulo.Is not nullable.
login_timelogin_time datetimedatetime Hora em que sessão foi estabelecida.Time when session was established. Não permite valor nulo.Is not nullable.
host_namehost_name nvarchar(128)nvarchar(128) Nome da estação de trabalho cliente específica de uma sessão.Name of the client workstation that is specific to a session. O valor é NULL para sessões internas.The value is NULL for internal sessions. Permite valor nulo.Is nullable.

Observação de segurança: O aplicativo cliente fornece o nome da estação de trabalho e pode fornecer dados inexatos.Security Note: The client application provides the workstation name and can provide inaccurate data. Não confie em HOST_NAME como um recurso de segurança.Do not rely upon HOST_NAME as a security feature.
program_nameprogram_name nvarchar(128)nvarchar(128) Nome do programa cliente que iniciou a sessão.Name of client program that initiated the session. O valor é NULL para sessões internas.The value is NULL for internal sessions. Permite valor nulo.Is nullable.
host_process_idhost_process_id intint ID do processo do programa cliente que iniciou a sessão.Process ID of the client program that initiated the session. O valor é NULL para sessões internas.The value is NULL for internal sessions. Permite valor nulo.Is nullable.
client_versionclient_version intint Versão de protocolo TDS da interface usada pelo cliente para conexão com o servidor.TDS protocol version of the interface that is used by the client to connect to the server. O valor é NULL para sessões internas.The value is NULL for internal sessions. Permite valor nulo.Is nullable.
client_interface_nameclient_interface_name nvarchar(32)nvarchar(32) Nome da biblioteca/driver que está sendo usado pelo cliente para se comunicar com o servidor.Name of library/driver being used by the client to communicate with the server. O valor é NULL para sessões internas.The value is NULL for internal sessions. Permite valor nulo.Is nullable.
security_idsecurity_id varbinary(85)varbinary(85) Identificador de segurança do Microsoft Windows associado ao logon.Microsoft Windows security ID associated with the login. Não permite valor nulo.Is not nullable.
login_namelogin_name nvarchar(128)nvarchar(128) Nome do logon do SQL ServerSQL Server no qual a sessão está sendo executada atualmente. SQL ServerSQL Server login name under which the session is currently executing. Para o nome de logon original que criou a sessão, consulte original_login_name.For the original login name that created the session, see original_login_name. Pode ser um SQL ServerSQL Server autenticado nome de logon ou um nome de usuário de domínio autenticado do Windows.Can be a SQL ServerSQL Server authenticated login name or a Windows authenticated domain user name. Não permite valor nulo.Is not nullable.
nt_domainnt_domain nvarchar(128)nvarchar(128) Aplica-se a: do SQL Server 2008SQL Server 2008 ao SQL Server 2017SQL Server 2017.Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

Domínio de Windows do cliente se a sessão estiver usando Autenticação do Windows ou uma conexão confiável.Windows domain for the client if the session is using Windows Authentication or a trusted connection. Esse valor é NULL para sessões internas e usuários que não têm domínio.This value is NULL for internal sessions and non-domain users. Permite valor nulo.Is nullable.
nt_user_nament_user_name nvarchar(128)nvarchar(128) Aplica-se a: do SQL Server 2008SQL Server 2008 ao SQL Server 2017SQL Server 2017.Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

Nome do usuário do Windows do cliente se a sessão estiver usando Autenticação do Windows ou uma conexão confiável.Windows user name for the client if the session is using Windows Authentication or a trusted connection. Esse valor é NULL para sessões internas e usuários que não têm domínio.This value is NULL for internal sessions and non-domain users. Permite valor nulo.Is nullable.
statusstatus nvarchar(30)nvarchar(30) Status da sessão.Status of the session. Valores possíveis:Possible values:

Executando -um ou mais solicitações atualmente em execuçãoRunning - Currently running one or more requests

Em repouso -não há solicitações atualmente em execuçãoSleeping - Currently running no requests

Inativo -sessão foi redefinida devido ao pooling de conexão e agora está em estado de pré-logon.Dormant - Session has been reset because of connection pooling and is now in prelogin state.

Pré-conexão -sessão está no classificador administrador de recursos.Preconnect - Session is in the Resource Governor classifier.

Não permite valor nulo.Is not nullable.
context_infocontext_info varbinary(128)varbinary(128) Valor CONTEXT_INFO da sessão.CONTEXT_INFO value for the session. As informações de contexto são definidas pelo usuário usando o SET CONTEXT_INFO instrução.The context information is set by the user by using the SET CONTEXT_INFO statement. Permite valor nulo.Is nullable.
cpu_timecpu_time intint Tempo da CPU, em milissegundos, usado por essa sessão.CPU time, in milliseconds, that was used by this session. Não permite valor nulo.Is not nullable.
memory_usagememory_usage intint Número de páginas de 8 KB de memória usado por essa sessão.Number of 8-KB pages of memory used by this session. Não permite valor nulo.Is not nullable.
total_scheduled_timetotal_scheduled_time intint Tempo total, em milissegundos, para o qual a sessão (solicitações internas) era programada para execução.Total time, in milliseconds, for which the session (requests within) were scheduled for execution. Não permite valor nulo.Is not nullable.
total_elapsed_timetotal_elapsed_time intint Tempo, em milissegundos, desde que a sessão foi estabelecida.Time, in milliseconds, since the session was established. Não permite valor nulo.Is not nullable.
endpoint_idendpoint_id intint ID do ponto de extremidade associado à sessão.ID of the Endpoint associated with the session. Não permite valor nulo.Is not nullable.
last_request_start_timelast_request_start_time datetimedatetime Hora de início da última solicitação na sessão.Time at which the last request on the session began. Inclui a solicitação em execução no momento.This includes the currently executing request. Não permite valor nulo.Is not nullable.
last_request_end_timelast_request_end_time datetimedatetime Hora da última conclusão de uma solicitação na sessão.Time of the last completion of a request on the session. Permite valor nulo.Is nullable.
readsreads bigintbigint Número de leituras executadas por solicitações durante esta sessão.Number of reads performed, by requests in this session, during this session. Não permite valor nulo.Is not nullable.
writeswrites bigintbigint Número de gravações executadas por solicitações durante esta sessão.Number of writes performed, by requests in this session, during this session. Não permite valor nulo.Is not nullable.
logical_readslogical_reads bigintbigint Número de leituras lógicas executadas na sessão.Number of logical reads that have been performed on the session. Não permite valor nulo.Is not nullable.
is_user_processis_user_process bitbit 0 se a sessão for uma sessão do sistema.0 if the session is a system session. Caso contrário, ele é 1.Otherwise, it is 1. Não permite valor nulo.Is not nullable.
text_sizetext_size intint Configuração de TEXTSIZE da sessão.TEXTSIZE setting for the session. Não permite valor nulo.Is not nullable.
languagelanguage nvarchar(128)nvarchar(128) Configuração de LANGUAGE da sessão.LANGUAGE setting for the session. Permite valor nulo.Is nullable.
date_formatdate_format nvarchar(3)nvarchar(3) Configuração de DATEFORMAT da sessão.DATEFORMAT setting for the session. Permite valor nulo.Is nullable.
date_firstdate_first smallintsmallint Configuração de DATEFIRST da sessão.DATEFIRST setting for the session. Não permite valor nulo.Is not nullable.
quoted_identifierquoted_identifier bitbit Configuração de QUOTED_IDENTIFIER da sessão.QUOTED_IDENTIFIER setting for the session. Não permite valor nulo.Is not nullable.
arithabortarithabort bitbit Configuração de ARITHABORT da sessão.ARITHABORT setting for the session. Não permite valor nulo.Is not nullable.
ansi_null_dflt_onansi_null_dflt_on bitbit Configuração de ANSI_NULL_DFLT_ON da sessão.ANSI_NULL_DFLT_ON setting for the session. Não permite valor nulo.Is not nullable.
ansi_defaultsansi_defaults bitbit Configuração de ANSI_DEFAULTS da sessão.ANSI_DEFAULTS setting for the session. Não permite valor nulo.Is not nullable.
ansi_warningsansi_warnings bitbit Configuração de ANSI_WARNINGS da sessão.ANSI_WARNINGS setting for the session. Não permite valor nulo.Is not nullable.
ansi_paddingansi_padding bitbit Configuração de ANSI_PADDING da sessão.ANSI_PADDING setting for the session. Não permite valor nulo.Is not nullable.
ansi_nullsansi_nulls bitbit Configuração de ANSI_NULLS da sessão.ANSI_NULLS setting for the session. Não permite valor nulo.Is not nullable.
concat_null_yields_nullconcat_null_yields_null bitbit Configuração de CONCAT_NULL_YIELDS_NULL da sessão.CONCAT_NULL_YIELDS_NULL setting for the session. Não permite valor nulo.Is not nullable.
transaction_isolation_leveltransaction_isolation_level smallintsmallint Nível de isolamento da transação da sessão.Transaction isolation level of the session.

0 = Não Especificado0 = Unspecified

1 = Leitura Não Confirmada1 = ReadUncomitted

2 = Leitura Confirmada2 = ReadCommitted

3 = Repetível3 = Repeatable

4 = Serializável4 = Serializable

5 = Instantâneo5 = Snapshot

Não permite valor nulo.Is not nullable.
lock_timeoutlock_timeout intint Configuração de LOCK_TIMEOUT da sessão.LOCK_TIMEOUT setting for the session. O valor está em milissegundos.The value is in milliseconds. Não permite valor nulo.Is not nullable.
deadlock_prioritydeadlock_priority intint Configuração de DEADLOCK_PRIORITY da sessão.DEADLOCK_PRIORITY setting for the session. Não permite valor nulo.Is not nullable.
row_countrow_count bigintbigint Número de linhas retornadas na sessão até este ponto.Number of rows returned on the session up to this point. Não permite valor nulo.Is not nullable.
prev_errorprev_error intint ID do último erro retornado na sessão.ID of the last error returned on the session. Não permite valor nulo.Is not nullable.
original_security_idoriginal_security_id varbinary(85)varbinary(85) Identificador de segurança do MicrosoftMicrosoft Windows associada a original_login_name. MicrosoftMicrosoft Windows security ID that is associated with the original_login_name. Não permite valor nulo.Is not nullable.
original_login_nameoriginal_login_name nvarchar(128)nvarchar(128) Nome do logon do SQL ServerSQL Server que o cliente usou para criar esta sessão. SQL ServerSQL Server login name that the client used to create this session. Pode ser um nome de logon autenticado pelo SQL ServerSQL Server, um nome de usuário de domínio autenticado pelo Windows ou um usuário do banco de dados independente.Can be a SQL ServerSQL Server authenticated login name, a Windows authenticated domain user name, or a contained database user. Observe que a sessão pode ter passado por muitas alternâncias de contexto implícitas ou explícitas após a conexão inicial.Note that the session could have gone through many implicit or explicit context switches after the initial connection. Por exemplo, se EXECUTE AS é usado.For example, if EXECUTE AS is used. Não permite valor nulo.Is not nullable.
last_successful_logonlast_successful_logon datetimedatetime Aplica-se a: do SQL Server 2008SQL Server 2008 ao SQL Server 2017SQL Server 2017.Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

Hora do último logon efetuado com êxito para original_login_name antes de a sessão atual ter sido iniciada.Time of the last successful logon for the original_login_name before the current session started.
last_unsuccessful_logonlast_unsuccessful_logon datetimedatetime Aplica-se a: do SQL Server 2008SQL Server 2008 ao SQL Server 2017SQL Server 2017.Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

Hora da última tentativa de logon para original_login_name antes de a sessão atual ter sido iniciada.Time of the last unsuccessful logon attempt for the original_login_name before the current session started.
unsuccessful_logonsunsuccessful_logons bigintbigint Aplica-se a: do SQL Server 2008SQL Server 2008 ao SQL Server 2017SQL Server 2017.Applies to: SQL Server 2008SQL Server 2008 through SQL Server 2017SQL Server 2017.

Número de tentativas de logon malsucedidas para original_login_name entre last_successful_logon e 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 do grupo de carga de trabalho a que pertence esta sessão.ID of the workload group to which this session belongs. Não permite valor nulo.Is not nullable.
database_iddatabase_id smallintsmallint Aplica-se a: do SQL Server 2012 (11.x)SQL Server 2012 (11.x) ao SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

ID do banco de dados atual para cada sessão.ID of the current database for each session.
authenticating_database_idauthenticating_database_id intint Aplica-se a: do SQL Server 2012 (11.x)SQL Server 2012 (11.x) ao SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

ID do banco de dados que está autenticando a entidade.ID of the database authenticating the principal. Para Logons, o valor será 0.For Logins, the value will be 0. Para usuários de bancos de dados independentes, o valor será a ID do banco de dados independente.For contained database users, the value will be the database ID of the contained database.
open_transaction_countopen_transaction_count intint Aplica-se a: do SQL Server 2012 (11.x)SQL Server 2012 (11.x) ao SQL Server 2017SQL Server 2017.Applies to: SQL Server 2012 (11.x)SQL Server 2012 (11.x) through SQL Server 2017SQL Server 2017.

Número de transações abertas por sessão.Number of open transactions per session.
pdw_node_idpdw_node_id intint Aplica-se ao: Azure SQL Data WarehouseAzure SQL Data Warehouse, Parallel Data WarehouseParallel Data WarehouseApplies to: Azure SQL Data WarehouseAzure SQL Data Warehouse, Parallel Data WarehouseParallel Data Warehouse

O identificador para o nó que essa distribuição é no.The identifier for the node that this distribution is on.

PermissõesPermissions

Qualquer pessoa pode ver suas próprias informações de sessão.Everyone can see their own session information.
SQL ServerSQL Server: Requer VIEW SERVER STATE permissão em SQL ServerSQL Server para ver todas as sessões no servidor. SQL ServerSQL Server: Requires VIEW SERVER STATE permission on SQL ServerSQL Server to see all sessions on the server.
Banco de Dados SQLSQL Database: Requer VIEW DATABASE STATE para ver todas as conexões com o banco de dados atual. Banco de Dados SQLSQL Database: Requires VIEW DATABASE STATE to see all connections to the current database. VIEW DATABASE STATE não pode ser concedida no master banco de dados.VIEW DATABASE STATE cannot be granted in the master database.

ComentáriosRemarks

Quando o conformidade critérios comuns habilitada opção de configuração de servidor estiver habilitada, as estatísticas de logon são exibidas nas seguintes colunas.When the common criteria compliance enabled server configuration option is enabled, logon statistics are displayed in the following columns.

As conexões de administrador no banco de dados SQL serão exibida uma linha por sessão autenticada.The admin connections on Azure SQL Database will see one row per authenticated session. As sessões de "sa" que aparecem no conjunto de resultados, não tem nenhum impacto sobre a cota de usuário para sessões.The "sa" sessions that appear in the resultset, do not have any impact on the user quota for sessions. As conexões não-administrador só verá informações relacionadas às suas sessões de usuário de banco de dados.The non-admin connections will only see information related to their database user sessions.

Cardinalidades de relaçõesRelationship Cardinalities

DeFrom ParaTo Em/AplicarOn/Apply RelaçãoRelationship
sys.dm_exec_sessionssys.dm_exec_sessions sys.dm_exec_requestssys.dm_exec_requests session_idsession_id Um para zero ou um para muitosOne-to-zero or one-to-many
sys.dm_exec_sessionssys.dm_exec_sessions sys.dm_exec_connectionssys.dm_exec_connections session_idsession_id Um para zero ou um para muitosOne-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 Um para zero ou um para muitosOne-to-zero or one-to-many
sys.dm_exec_sessionssys.dm_exec_sessions DM exec_cursors(session_id | 0)sys.dm_exec_cursors(session_id | 0) session_id CROSS APPLYsession_id CROSS APPLY

OUTER APPLYOUTER APPLY
Um para zero ou um para muitosOne-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 Um para umOne-to-one

ExemplosExamples

A.A. Localizando usuários conectados ao servidorFinding users that are connected to the server

O exemplo a seguir localiza os usuários conectados ao servidor e retorna o número de sessões de cada usuário.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.B. Localizando cursores demoradosFinding long-running cursors

O exemplo a seguir localiza os cursores abertos para mais um intervalo de tempo especificado, que criou os cursores e em qual sessão os cursores estão.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.C. Localizando sessões inativas que têm transações abertasFinding idle sessions that have open transactions

O exemplo a seguir localiza sessões que têm transações abertas e estão ociosas.The following example finds sessions that have open transactions and are idle. Uma sessão ociosa é a que não tem nenhuma solicitação em execução no momento.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.D. Localizando informações sobre a própria conexão de consultasFinding information about a queries own connection

Consulta típica para reunir informações sobre a própria conexão de consultas.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;  

Consulte tambémSee Also

Exibições e funções de gerenciamento dinâmico (Transact-SQL) Dynamic Management Views and Functions (Transact-SQL)
Funções e exibições de gerenciamento dinâmico relacionadas à execução (Transact-SQL)Execution Related Dynamic Management Views and Functions (Transact-SQL)