Freigeben über


sys.dm_exec_sessions (Transact-SQL)

Gibt eine Zeile pro authentifizierter Sitzung in SQL Server zurück. sys.dm_exec_sessions ist eine Sicht des Serverbereichs mit Informationen zu allen aktiven Benutzerverbindungen und internen Tasks. Dies beinhaltet Informationen zu Clientversion, Clientprogrammname, Client Anmeldezeit, Anmeldebenutzer, aktuelle Sitzungseinstellung und mehr. Mit sys.dm_exec_sessions können Sie zuerst die aktuelle Systemlast anzeigen sowie eine relevante Sitzung ermitteln und dann weitere Informationen zu diese Sitzung mit anderen dynamischen Verwaltungssichten oder dynamischen Verwaltungsfunktionen abrufen.

Die dynamischen Verwaltungssichten sys.dm_exec_connections, sys.dm_exec_sessions und sys.dm_exec_requests sind der sys.sysprocesses-Systemtabelle zugeordnet.

Gilt für: SQL Server (SQL Server 2008 bis aktuelle Version), Windows Azure SQL-Datenbank (Ursprüngliche Version bis aktuelle Version).

Spaltenname

Datentyp

Beschreibung

session_id

smallint

Identifiziert die einer aktiven primären Verbindung zugeordnete Sitzung. Lässt keine NULL-Werte zu.

login_time

datetime

Uhrzeit, zu der die Sitzung eingerichtet wurde. Lässt keine NULL-Werte zu.

host_name

nvarchar(128)

Name der für eine Sitzung spezifischen Clientarbeitsstation. Der Wert ist für interne Sitzungen NULL. Lässt NULL-Werte zu.

SicherheitshinweisSicherheitshinweis

Die Clientanwendung stellt den Namen der Arbeitsstation bereit, und sie kann fehlerhafte Daten angeben.Verwenden Sie HOST_NAME nicht als Sicherheitsfunktion.

program_name

nvarchar(128)

Name des Clientprogramms, mit dem die Sitzung initiiert wurde. Der Wert ist für interne Sitzungen NULL. Lässt NULL-Werte zu.

host_process_id

int

Prozess-ID des Clientprogramms, mit dem die Sitzung initiiert wurde. Der Wert ist für interne Sitzungen NULL. Lässt NULL-Werte zu.

client_version

int

Die vom Client für die Verbindung mit dem Server verwendete TDS-Protokollversion der Schnittstelle. Der Wert ist für interne Sitzungen NULL. Lässt NULL-Werte zu.

client_interface_name

nvarchar(32)

Der vom Client für die Verbindung mit dem Server verwendete Protokollname. Der Wert ist für interne Sitzungen NULL. Lässt NULL-Werte zu.

security_id

varbinary(85)

Microsoft Windows-Sicherheits-ID, die der Anmeldung zugeordnet ist. Lässt keine NULL-Werte zu.

login_name

nvarchar(128)

SQL Server-Anmeldename, unter dem die Sitzung gegenwärtig ausgeführt wird. Den ursprünglichen Anmeldenamen, mit dem die Sitzung erstellt wurde, finden Sie unter original_login_name. Kann ein authentifizierter Anmeldename von SQL Server oder ein authentifizierter Benutzername einer Windows-Domäne sein. Lässt keine NULL-Werte zu.

nt_domain

nvarchar(128)

Die Windows-Domäne für den Client, wenn für die Sitzung die Windows-Authentifizierung oder eine vertrauenswürdige Verbindung verwendet wird. Dieser Wert ist für interne Sitzungen und andere Benutzer als Domänenbenutzer NULL. Lässt NULL-Werte zu.

Gilt für: SQL Server 2008 bis SQL Server 2014.

nt_user_name

nvarchar(128)

Der Windows-Benutzername für den Client, wenn für die Sitzung die Windows-Authentifizierung oder eine vertrauenswürdige Verbindung verwendet wird. Dieser Wert ist für interne Sitzungen und andere Benutzer als Domänenbenutzer NULL. Lässt NULL-Werte zu.

Gilt für: SQL Server 2008 bis SQL Server 2014.

status

nvarchar(30)

Status der Sitzung. Mögliche Werte:

  • Running – Aktuell wird mindestens eine Anforderung ausgeführt.

  • Sleeping – Aktuell werden keine Anforderungen ausgeführt.

  • Dormant – Die Sitzung wurde aufgrund des Verbindungspoolings zurückgesetzt und befindet sich nun im Status vor einer Anmeldung.

  • Preconnect- Sitzung ist in der Klassifizierungsfunktion der Ressourcenkontrolle.

Lässt keine NULL-Werte zu.

context_info

varbinary(128)

CONTEXT_INFO-Wert für die Sitzung. Die Kontextinformationen werden vom Benutzer mithilfe der SET CONTEXT_INFO-Anweisung festgelegt. Lässt NULL-Werte zu.

cpu_time

int

Die von der Sitzung verwendete CPU-Zeit in Millisekunden. Lässt keine NULL-Werte zu.

memory_usage

int

Anzahl der von der Sitzung verwendeten 8 KB-Speicherseiten. Lässt keine NULL-Werte zu.

total_scheduled_time

int

Gesamtzeit in Millisekunden, die für die Ausführung der Sitzung (sowie der darin enthaltenen Anforderungen) eingeplant wurde. Lässt keine NULL-Werte zu.

total_elapsed_time

int

Zeit in Millisekunden seit dem Einrichten der Sitzung. Lässt keine NULL-Werte zu.

endpoint_id

int

ID des Endpunktes, der der Sitzung zugeordnet ist. Lässt keine NULL-Werte zu.

last_request_start_time

datetime

Uhrzeit, zu der die letzte Anforderung in der Sitzung gestartet wurde. Dies schließt die derzeit ausgeführte Anforderung ein. Lässt keine NULL-Werte zu.

last_request_end_time

datetime

Uhrzeit, zu der eine Anforderung in der Sitzung zuletzt abgeschlossen wurde. Lässt NULL-Werte zu.

reads

bigint

Anzahl von Lesevorgängen von Anforderungen in dieser Sitzung oder während dieser Sitzung. Lässt keine NULL-Werte zu.

writes

bigint

Anzahl der Schreibvorgänge von Anforderungen in dieser Sitzung oder während dieser Sitzung. Lässt keine NULL-Werte zu.

logical_reads

bigint

Anzahl von logischen Lesevorgängen in der Sitzung. Lässt keine NULL-Werte zu.

is_user_process

bit

0, wenn es sich um eine Systemsitzung handelt. Andernfalls ist der Wert 1. Lässt keine NULL-Werte zu.

text_size

int

TEXTSIZE-Einstellung für die Sitzung. Lässt keine NULL-Werte zu.

language

nvarchar(128)

LANGUAGE-Einstellung für die Sitzung. Lässt NULL-Werte zu.

date_format

nvarchar(3)

DATEFORMAT-Einstellung für die Sitzung. Lässt NULL-Werte zu.

date_first

smallint

DATEFIRST-Einstellung für die Sitzung. Lässt keine NULL-Werte zu.

quoted_identifier

bit

QUOTED_IDENTIFIER-Einstellung für die Sitzung. Lässt keine NULL-Werte zu.

arithabort

bit

ARITHABORT-Einstellung für die Sitzung. Lässt keine NULL-Werte zu.

ansi_null_dflt_on

bit

ANSI_NULL_DFLT_ON-Einstellung für die Sitzung. Lässt keine NULL-Werte zu.

ansi_defaults

bit

ANSI_DEFAULTS-Einstellung für die Sitzung. Lässt keine NULL-Werte zu.

ansi_warnings

bit

ANSI_WARNINGS-Einstellung für die Sitzung. Lässt keine NULL-Werte zu.

ansi_padding

bit

ANSI_PADDING-Einstellung für die Sitzung. Lässt keine NULL-Werte zu.

ansi_nulls

bit

ANSI_NULLS-Einstellung für die Sitzung. Lässt keine NULL-Werte zu.

concat_null_yields_null

bit

CONCAT_NULL_YIELDS_NULL-Einstellung für die Sitzung. Lässt keine NULL-Werte zu.

transaction_isolation_level

smallint

Isolationsstufe für Transaktionen der Sitzung.

0 = Unspecified

1 = ReadUncomitted

2 = ReadCommitted

3 = Repeatable

4 = Serializable

5 = Momentaufnahme

Lässt keine NULL-Werte zu.

lock_timeout

int

LOCK_TIMEOUT-Einstellung für die Sitzung. Der Wert ist in Millisekunden angegeben. Lässt keine NULL-Werte zu.

deadlock_priority

int

DEADLOCK_PRIORITY-Einstellung für die Sitzung. Lässt keine NULL-Werte zu.

row_count

bigint

Anzahl der bisher in der Sitzung zurückgegebenen Zeilen. Lässt keine NULL-Werte zu.

prev_error

int

ID des letzten in der Sitzung zurückgegebenen Fehlers. Lässt keine NULL-Werte zu.

original_security_id

varbinary(85)

Microsoft Windows-Sicherheits-ID, die dem original_login_name zugeordnet ist. Lässt keine NULL-Werte zu.

original_login_name

nvarchar(128)

SQL Server-Anmeldename, der vom Client zum Erstellen dieser Sitzung verwendet wurde. Kann ein authentifizierter Anmeldename von SQL Server, ein authentifizierter Benutzername einer Windows-Domäne oder ein Benutzer einer eigenständigen Datenbank sein. Beachten Sie, dass für die Sitzung nach der ersten Verbindung möglicherweise viele implizite oder explizite Kontextwechsel erfolgt sind. Beispielsweise wenn EXECUTE AS verwendet wird. Lässt keine NULL-Werte zu.

last_successful_logon

datetime

Zeitpunkt der letzten erfolgreichen Anmeldung für original_login_name, bevor die aktuelle Sitzung gestartet wurde.

Gilt für: SQL Server 2008 bis SQL Server 2014.

last_unsuccessful_logon

datetime

Zeitpunkt des letzten nicht erfolgreichen Anmeldeversuchs für original_login_name, bevor die aktuelle Sitzung gestartet wurde.

Gilt für: SQL Server 2008 bis SQL Server 2014.

unsuccessful_logons

bigint

Anzahl der nicht erfolgreichen Anmeldeversuche für original_login_name zwischen last_successful_logon und login_time.

Gilt für: SQL Server 2008 bis SQL Server 2014.

group_id

int

ID der Arbeitsauslastungsgruppe, zu der diese Sitzung gehört. Lässt keine NULL-Werte zu.

database_id

smallint

Die ID der aktuellen Datenbank für jede Sitzung.

Gilt für: SQL Server 2012 bis SQL Server 2014.

authenticating_database_id

int

ID der Datenbank, die den Prinzipal authentifiziert. Bei Anmeldungen beträgt der Wert 0. Für Benutzer von eigenständigen Datenbanken ist der Wert die Datenbank-ID der eigenständigen Datenbank.

Gilt für: SQL Server 2012 bis SQL Server 2014.

open_transaction_count

int

Die Anzahl der offenen Transaktionen pro Sitzung.

Gilt für: SQL Server 2012 bis SQL Server 2014.

Berechtigungen

Erfordert die VIEW SERVER STATE-Berechtigung auf dem Server.

Hinweis

Wenn der Benutzer die VIEW SERVER STATE-Berechtigung auf dem Server besitzt, kann er alle zurzeit ausgeführten Sitzungen für die Instanz von SQL Server anzeigen; andernfalls wird dem Benutzer nur die aktuelle Sitzung angezeigt.

Hinweise

Wenn die common criteria compliance enabled-Serverkonfigurationsoption aktiviert ist, werden in den folgenden Spalten Anmeldestatistiken angezeigt.

  • last_successful_logon

  • last_unsuccessful_logon

  • unsuccessful_logons

Ist diese Option nicht aktiviert, geben diese Spalten NULL-Werte zurück. Weitere Informationen zum Festlegen dieser Serverkonfigurationsoption finden Sie unter Common Criteria-Kompatibilität aktiviert (Serverkonfigurationsoption).

Kardinalität der Beziehungen

Von

Zu

Für/Anwendung

Beziehung

sys.dm_exec_sessions

sys.dm_exec_requests

session_id

1:0 oder 1:viele

sys.dm_exec_sessions

sys.dm_exec_connections

session_id

1:0 oder 1:viele

sys.dm_exec_sessions

sys.dm_tran_session_transactions

session_id

1:0 oder 1:viele

sys.dm_exec_sessions

sys.dm_exec_cursors(session_id | 0)

session_id CROSS APPLY

OUTER APPLY

1:0 oder 1:viele

sys.dm_exec_sessions

sys.dm_db_session_space_usage

session_id

1:1

Beispiele

A.Ermitteln der Benutzer, die mit dem Server verbunden sind

Im folgenden Beispiel werden die Benutzer ermittelt, die mit dem Server verbunden sind, und die Anzahl der Sitzungen für die einzelnen Benutzer zurückgegeben.

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

B.Suchen von Cursorn mit langer Ausführungszeit

Im folgenden Beispiel werden die Cursor, die seit einer längeren Zeit als der angegebenen geöffnet sind, die Benutzer, die die Cursor erstellt haben, und die Sitzungen, in denen die Cursor verwendet werden, gesucht.

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.Suchen von Sitzungen im Leerlauf, für die Transaktionen geöffnet sind

Im folgenden Beispiel werden Sitzungen gesucht, für die Transaktionen geöffnet sind und die sich im Leerlauf befinden. Sitzungen, für die derzeit keine Anforderung ausgeführt wird, befinden sich im Leerlauf.

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.Suchen nach Informationen über die eigene Verbindung einer Abfrage

Typische Abfrage zum Sammeln von Informationen über die eigene Verbindung einer Abfrage.

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;

Siehe auch

Verweis

Dynamische Verwaltungssichten und Funktionen (Transact-SQL)

Dynamische Verwaltungssichten und -funktionen im Zusammenhang mit der Ausführung (Transact-SQL)