sys.dm_exec_sessions (Transact-SQL)
Retorna uma linha por sessão autenticada no SQL 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. Essas informações contêm versão de cliente, nome do programa cliente, hora de logon do cliente, usuário do logon, configuração da sessão atual etc. 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.
As exibições de gerenciamento dinâmico sys.dm_exec_connections, sys.dm_exec_sessions e sys.dm_exec_requests são mapeadas para a tabela do sistema sys.sysprocesses.
Nome da coluna |
Tipo de dados |
Descrição |
---|---|---|
session_id |
smallint |
Identifica a sessão associada a cada conexão primária ativa. Não permite valor nulo. |
login_time |
datetime |
Hora quando sessão foi estabelecida. Não permite valor nulo. |
host_name |
nvarchar(128) |
Nome da estação de trabalho cliente específica de uma sessão. O valor é NULL para sessões internas. É anulável. |
program_name |
nvarchar(128) |
Nome de programa cliente que iniciou a sessão. O valor é NULL para sessões internas. É anulável. |
host_process_id |
int |
ID de processo do programa cliente que iniciou a sessão. O valor é NULL para sessões internas. É anulável. |
client_version |
int |
Versão de protocolo TDS da interface usada pelo cliente para conexão ao servidor. O valor é NULL para sessões internas. Permite valor nulo.
ValorVersão do TDS Versão do SQL Server
04.2SQL Server 6.x
16.0SQL Server 6.x
27.0SQL Server 7.0
37.1SQL Server 2000
47.1 revisão 1SQL Server 2000 com Service Pack 1
57.2SQL Server 2005
67.3SQL Server 2008
|
client_interface_name |
nvarchar(32) |
Nome de protocolo que é usado pelo cliente para conexão com o servidor. O valor é NULL para sessões internas. É anulável. |
security_id |
varbinary(85) |
Identificador de segurança do Microsoft Windows associado ao logon. Não permite valor nulo. |
login_name |
nvarchar(128) |
Nome de logon de SQL Server em que a sessão está sendo executada atualmente. Para o nome de logon original que criou a sessão, consulte original_login_name. Pode ser um nome de logon autenticado por SQL Server ou um nome de usuário de domínio autenticado pelo Windows. Não permite valor nulo. |
nt_domain |
nvarchar(128) |
Domínio de Windows do cliente se a sessão estiver usando Autenticação do Windows ou uma conexão confiável. Este valor é o NULL para sessões internas e usuários que não tiverem domínio. É anulável. |
nt_user_name |
nvarchar(128) |
Nome de usuário do Windows do cliente se a sessão estiver usando Autenticação do Windows ou uma conexão confiável. Este valor é o NULL para sessões internas e usuários que não tiverem domínio. É anulável. |
status |
nvarchar(30) |
Status da sessão. Os valores possíveis são:
Não permite valor nulo. |
context_info |
varbinary(128) |
Valor CONTEXT_INFO para a sessão. As informações de contexto são definidas pelo usuário com o uso da instrução SET CONTEXT_INFO. É anulável. |
cpu_time |
int |
Tempo da CPU, em milissegundos, usado por essa sessão. Não permite valor nulo. |
memory_usage |
int |
Número de páginas de 8 KB de memória usado por essa sessão. Não permite valor nulo. |
total_scheduled_time |
int |
Tempo total, em milissegundos, para o qual a sessão (solicitações internas) era programada para execução. Não permite valor nulo. |
total_elapsed_time |
int |
Tempo, em milissegundos, desde que a sessão foi estabelecida. Não permite valor nulo. |
endpoint_id |
int |
ID do ponto de extremidade associado à sessão. Não permite valor nulo. |
last_request_start_time |
datetime |
Hora em que a última solicitação na sessão começou. Inclui a solicitação atualmente em execução. Não permite valor nulo. |
last_request_end_time |
datetime |
Hora da última conclusão de uma solicitação na sessão. É anulável. |
reads |
bigint |
Número de leituras executadas, por solicitações nesta sessão, durante esta sessão. Não permite valor nulo. |
writes |
bigint |
Número de gravações executadas, por solicitações nesta sessão, durante esta sessão. Não permite valor nulo. |
logical_reads |
bigint |
Número de leituras lógicas executadas na sessão. Não permite valor nulo. |
is_user_process |
bit |
0 se a sessão for uma sessão de sistema. Caso contrário, será 1. Não permite valor nulo. |
text_size |
int |
Configuração TEXTSIZE para a sessão. Não permite valor nulo. |
language |
nvarchar(128) |
Configuração LANGUAGE para a sessão. É anulável. |
date_format |
nvarchar(3) |
Configuração DATEFORMAT para a sessão. É anulável. |
date_first |
smallint |
Configuração DATEFIRST para a sessão. Não permite valor nulo. |
quoted_identifier |
bit |
Configuração QUOTED_IDENTIFIER para a sessão. Não permite valor nulo. |
arithabort |
bit |
Configuração ARITHABORT para a sessão. Não permite valor nulo. |
ansi_null_dflt_on |
bit |
Configuração ANSI_NULL_DFLT_ON para a sessão. Não permite valor nulo. |
ansi_defaults |
bit |
Configuração ANSI_DEFAULTS para a sessão. Não permite valor nulo. |
ansi_warnings |
bit |
Configuração ANSI_WARNINGS para a sessão. Não permite valor nulo. |
ansi_padding |
bit |
Configuração ANSI_PADDING para a sessão. Não permite valor nulo. |
ansi_nulls |
bit |
Configuração ANSI_NULLS para a sessão. Não permite valor nulo. |
concat_null_yields_null |
bit |
Configuração CONCAT_NULL_YIELDS_NULL para a sessão. Não permite valor nulo. |
transaction_isolation_level |
smallint |
Nível de isolamento da transação da sessão. 0 = Não Especificado 1 = Leitura Não Confirmada 2 = Leitura Confirmada 3 = Repetível 4 = Serializável 5 = Instantâneo Não permite valor nulo. |
lock_timeout |
int |
Configuração LOCK_TIMEOUT para a sessão. O valor está em milissegundos. Não permite valor nulo. |
deadlock_priority |
int |
Configuração DEADLOCK_PRIORITY para a sessão. Não permite valor nulo. |
row_count |
bigint |
Número de linhas retornadas na sessão até este ponto. Não permite valor nulo. |
prev_error |
int |
ID do último erro retornado na sessão. Não permite valor nulo. |
original_security_id |
varbinary(85) |
Identificador de segurança do Microsoft Windows associada a original_login_name. Não permite valor nulo. |
original_login_name |
nvarchar(128) |
Nome de logon do SQL Server que o cliente usou para criar esta sessão. Pode ser um nome de logon autenticado por SQL Server ou um nome de usuário de domínio autenticado pelo Windows. Observe que a sessão pode ter passado por muitas opções de contexto implícitas ou explícitas após a conexão inicial. Por exemplo, se EXECUTE AS for usado. Não permite valor nulo. |
last_successful_logon |
datetime |
Hora do último logon efetuado com êxito para original_login_name antes de a sessão atual ter sido iniciada. |
last_unsuccessful_logon |
datetime |
Hora da última tentativa de logon para original_login_name antes de a sessão atual ter sido iniciada. |
unsuccessful_logons |
bigint |
Número de tentativas de logon malsucedidas para original_login_name entre last_successful_logon e login_time. |
group_id |
int |
ID do grupo de carga de trabalho a que pertence esta sessão. Não permite valor nulo. |
Permissões
Exige a permissão VIEW SERVER STATE no servidor.
Observação |
---|
Se o usuário tiver permissão VIEW SERVER STATE no servidor, ele verá todas as sessões em execução na instância de SQL Server; caso contrário, ele verá apenas a sessão atual. |
Comentários
Estatísticas de logon para conformidade com critérios comuns
Quando a opção Conformidade Critérios Comuns Habilitada for ativada com o uso do procedimento armazenado sp_configure, as estatísticas de logon serão armazenadas e exibidas nas seguintes colunas de sys.dm_exec_sessions:
last_successful_logon
last_unsuccessful_logon
unsuccessful_logons
Se a opção de configuração de servidor não estiver habilitada, as colunas sys.dm_exec_sessions retornarão valores nulos. Para obter mais informações sobre como definir esta opção de configuração de servidor, consulte Opção common criteria compliance enabled.
Cardinalidades da relação
De |
Para |
Em/Aplicar |
Relação |
---|---|---|---|
sys.dm_exec_sessions |
sys.dm_exec_requests |
session_id |
Um para zero ou um para muitos |
sys.dm_exec_sessions |
sys.dm_exec_connections |
session_id |
Um para zero ou um para muitos |
sys.dm_exec_sessions |
sys.dm_tran_session_transactions |
session_id |
Um para zero ou um para muitos |
sys.dm_exec_sessions |
sys.dm_exec_cursors (session_id | 0) |
session_id CROSS APPLY OUTER APPLY |
Um para zero ou um para muitos |
sys.dm_exec_sessions |
sys.dm_db_session_space_usage |
session_id |
Um para um |
Exemplos
A. Localizando usuários conectados ao servidor
O exemplo a seguir localiza os usuários conectados ao servidor e retorna o número de sessões de cada usuário.
SELECT login_name ,COUNT(session_id) AS session_count
FROM sys.dm_exec_sessions
GROUP BY login_name;
B. Localizando cursores demorados
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.
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. Localizando sessões inativas que têm transações abertas
O exemplo a seguir localiza sessões que têm transações abertas e estão ociosas. Uma sessão ociosa é a que não tem nenhuma solicitação em execução no momento.
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
);
Histórico de alterações
Conteúdo atualizado |
---|
Valores adicionados à descrição da coluna client_version. |