sys.dm_exec_sessions

Data aggiornamento: 12 dicembre 2006

Restituisce una riga per ogni sessione autenticata in SQL Server. sys.dm_exec_sessions è una vista con ambito server che contiene informazioni su tutte le connessioni utente e le attività interne attive. Tali informazioni includono la versione del client, il nome del programma client, l'ora di accesso del client, l'utente che esegue l'accesso, l'impostazione di sessione corrente e altro. Utilizzare sys.dm_exec_sessions prima di tutto per visualizzare il carico di sistema corrente e individuare una sessione di interesse, quindi per raccogliere ulteriori informazioni su tale sessione utilizzando altre viste o funzioni a gestione dinamica.

Le viste a gestione dinamica sys.dm_exec_connections, sys.dm_exec_sessions e sys.dm_exec_requests corrispondono alla tabella di sistema sys.sysprocesses.

Nome colonna Tipo di dati Descrizione

session_id

smallint

Identifica la sessione associata a ogni connessione principale attiva. Non supporta valori Null.

login_time

datetime

Data e ora in cui è stata stabilita la sessione. Non supporta valori Null.

host_name

nvarchar(128)

Nome della workstation client specifica di una sessione. Il valore è NULL per le sessioni interne. Supporta valori Null.

program_name

nvarchar(128)

Nome del programma client che ha iniziato la sessione. Il valore è NULL per le sessioni interne. Supporta valori Null.

host_process_id

int

ID di processo del programma client che ha iniziato la sessione. Il valore è NULL per le sessioni interne. Supporta valori Null.

client_version

int

Versione del protocollo TDS dell'interfaccia utilizzata dal client per connettersi al server. Il valore è NULL per le sessioni interne. Supporta valori Null.

client_interface_name

nvarchar(32)

Nome del protocollo utilizzato dal client per connettersi al server. Il valore è NULL per le sessioni interne. Supporta valori Null.

security_id

varbinary(85)

ID di protezione di Microsoft Windows associato all'account di accesso. Non supporta valori Null.

login_name

nvarchar(128)

Nome dell'account di accesso di SQL Server con cui la sessione è attualmente in esecuzione. Per il nome dell'account di accesso originale che ha creato la sessione, vedere original_login_name. Può essere un nome di un account di accesso autenticato di SQL Server o un nome di un utente di dominio autenticato di Windows. Non supporta valori Null.

nt_domain

nvarchar(128)

Dominio di Windows per il client se la sessione utilizza l'autenticazione di Windows o una connessione trusted. Il valore è NULL per le sessioni interne e per gli utenti non di dominio. Supporta valori Null.

nt_user_name

nvarchar(128)

Nome utente di Windows per il client se la sessione utilizza l'autenticazione di Windows o una connessione trusted. Il valore è NULL per le sessioni interne e per gli utenti non di dominio. Supporta valori Null.

status

nvarchar(30)

Stato della sessione. I valori possibili sono:

  • Running: una o più richieste sono in esecuzione
  • Sleeping: nessuna richiesta è in esecuzione
  • Dormant: la sessione è stata reimpostata a causa del pool di connessioni e si trova ora nello stato di inattività precedente all'accesso.

Non supporta valori Null.

context_info

varbinary(128)

Valore di CONTEXT_INFO per la sessione. Le informazioni di contesto vengono impostate dall'utente tramite l'istruzione SET CONTEXT_INFO. Supporta valori Null.

cpu_time

int

Tempo della CPU, espresso in millisecondi, utilizzato dalla sessione. Non supporta valori Null.

memory_usage

int

Numero di pagine da 8 KB utilizzate dalla sessione. Non supporta valori Null.

total_scheduled_time

int

Tempo totale, espresso in millisecondi, pianificato per l'esecuzione delle richieste nella sessione. Non supporta valori Null.

total_elapsed_time

int

Tempo, espresso in millisecondi, trascorso dal momento in cui è stata stabilita la sessione. Non supporta valori Null.

endpoint_id

int

ID dell'endpoint associato alla sessione. Non supporta valori Null.

last_request_start_time

datetime

Data e ora in cui è iniziata l'ultima richiesta nella sessione. Include la richiesta attualmente in esecuzione. Non supporta valori Null.

last_request_end_time

datetime

Data e ora dell'ultimo completamento di una richiesta nella sessione. Supporta valori Null.

reads

bigint

Numero di letture eseguite dalle richieste della sessione durante la sessione. Non supporta valori Null.

writes

bigint

Numero di scritture eseguite dalle richieste della sessione durante la sessione. Non supporta valori Null.

logical_reads

bigint

Numero di letture logiche eseguite nella sessione. Non supporta valori Null.

is_user_process

bit

0 se la sessione è una sessione di sistema. Negli altri casi è 1. Non supporta valori Null.

text_size

int

Impostazione di TEXTSIZE per la sessione. Non supporta valori Null.

language

nvarchar(128)

Impostazione di LANGUAGE per la sessione. Supporta valori Null.

date_format

nvarchar(3)

Impostazione di DATEFORMAT per la sessione. Supporta valori Null.

date_first

smallint

Impostazione di DATEFIRST per la sessione. Non supporta valori Null.

quoted_identifier

bit

Impostazione di QUOTED_IDENTIFIER per la sessione. Non supporta valori Null.

arithabort

bit

Impostazione di ARITHABORT per la sessione. Non supporta valori Null.

ansi_null_dflt_on

bit

Impostazione di ANSI_NULL_DFLT_ON per la sessione. Non supporta valori Null.

ansi_defaults

bit

Impostazione di ANSI_DEFAULTS per la sessione. Non supporta valori Null.

ansi_warnings

bit

Impostazione di ANSI_WARNINGS per la sessione. Non supporta valori Null.

ansi_padding

bit

Impostazione di ANSI_PADDING per la sessione. Non supporta valori Null.

ansi_nulls

bit

Impostazione di ANSI_NULLS per la sessione. Non supporta valori Null.

concat_null_yields_null

bit

Impostazione di CONCAT_NULL_YIELDS_NULL per la sessione. Non supporta valori Null.

transaction_isolation_level

smallint

Livello di isolamento delle transazioni della sessione.

0 = Non specificato

1 = ReadUncomitted

2 = ReadCommitted

3 = Repeatable

4 = Serializable

5 = Snapshot

Non supporta valori Null.

lock_timeout

int

Impostazione di LOCK_TIMEOUT per la sessione. Il valore è espresso in millisecondi. Non supporta valori Null.

deadlock_priority

int

Impostazione di DEADLOCK_PRIORITY per la sessione. Non supporta valori Null.

row_count

bigint

Numero di righe restituite nella sessione fino a questo punto. Non supporta valori Null.

prev_error

int

ID dell'ultimo errore restituito nella sessione. Non supporta valori Null.

original_security_id

varbinary(85)

ID di protezione di Microsoft Windows associato a original_login_name. Non supporta valori Null.

original_login_name

nvarchar(128)

Nome dell'account di accesso di SQL Server utilizzato dal client per creare la sessione. Può essere un nome di un account di accesso autenticato di SQL Server o un nome di un utente di dominio autenticato di Windows. Si noti che nella sessione potrebbero essersi verificati numerosi cambi di contesto impliciti o espliciti dopo la connessione iniziale, ad esempio in caso di utilizzo di EXECUTE AS. Non supporta valori Null.

last_successful_logon

datetime

Data e ora dell'ultimo accesso riuscito di original_login_name prima dell'avvio della sessione corrente.

last_unsuccessful_logon

datetime

Data e ora dell'ultimo accesso non riuscito di original_login_name prima dell'avvio della sessione corrente.

unsuccessful_logons

bigint

Numero di tentativi di accesso non riusciti di original_login_name tra last_successful_logon e login_time.

Autorizzazioni

È richiesta l'autorizzazione VIEW SERVER STATE nel server.

[!NOTA] Se si dispone dell'autorizzazione VIEW SERVER STATE per il server, è possibile visualizzare tutte le sessioni in esecuzione nell'istanza di SQL Server. In caso contrario, è possibile visualizzare solo la sessione corrente.

Osservazioni

Statistiche relative agli accessi per la conformità ai criteri comuni

Quando viene attivata l'opzione common criteria compliance enabled mediante la stored procedure sp_configure, le statistiche relative agli accessi vengono archiviate e visualizzate nelle colonne di sys.dm_exec_sessions seguenti:

  • last_successful_logon
  • last_unsuccessful_logon
  • unsuccessful_logons

Se questa opzione di configurazione del server non è attivata, queste colonne di sys.dm_exec_sessions restituiranno valori Null. Per ulteriori informazioni sull'impostazione di questa opzione di configurazione del server, vedere Opzione common criteria compliance enabled.

Cardinalità delle relazioni

Da A In/Si applica a Relazione

sys.dm_exec_sessions

sys.dm_exec_requests

session_id

Uno-a-zero o uno-a-molti

sys.dm_exec_sessions

sys.dm_exec_connections

session_id

Uno-a-zero o uno-a-molti

sys.dm_exec_sessions

sys.dm_tran_session_transactions

session_id

Uno-a-zero o uno-a-molti

sys.dm_exec_sessions

sys.dm_exec_cursors(session_id | 0)

session_id CROSS APPLY

OUTER APPLY

Uno-a-zero o uno-a-molti

sys.dm_exec_sessions

sys.dm_db_session_space_usage

session_id

Uno-a-uno

Esempi

A. Individuazione degli utenti connessi al server

Nell'esempio seguente vengono individuati gli utenti connessi al server e viene restituito il numero di sessioni per ogni utente.

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

B. Individuazione dei cursori con esecuzione prolungata

Nell'esempio seguente vengono individuati i cursori aperti per un periodo più lungo di quello specificato, l'utente che ha creato i cursori e la sessione in cui i cursori sono attivi.

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. Individuazione delle sessioni inattive con transazioni aperte

Nell'esempio seguente vengono individuate le sessioni inattive con transazioni aperte. Si definisce inattiva una sessione per cui non sono in esecuzione richieste.

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
    );

Vedere anche

Riferimento

Mapping delle tabelle di sistema di SQL Server 2000 alle viste di sistema di SQL Server 2005
Funzioni e viste a gestione dinamica
Funzioni e viste a gestione dinamica relative all'esecuzione

Altre risorse

Certificazione con criteri comuni

Guida in linea e informazioni

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

12 dicembre 2006

Nuovo contenuto:
  • Aggiunta di informazioni sulle colonne aggiunte in SQL Server 2005 Service Pack 2 per l'archiviazione e la visualizzazione di statistiche relative agli accessi per la conformità ai criteri comuni.
  • Aggiunta di contenuto nell'introduzione, nella tabella Cardinalità delle relazioni e negli esempi.
Contenuto modificato:
  • Modifica delle descrizioni per host_name, program_name, host_process_id, client_version, client_interface_name, login_name, nt_domain, nt_user_name, status e context_info.