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.
|
||
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.
|
||
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.
|
||
status |
nvarchar(30) |
Status der Sitzung. Mögliche Werte:
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.
|
||
last_unsuccessful_logon |
datetime |
Zeitpunkt des letzten nicht erfolgreichen Anmeldeversuchs für original_login_name, bevor die aktuelle Sitzung gestartet wurde.
|
||
unsuccessful_logons |
bigint |
Anzahl der nicht erfolgreichen Anmeldeversuche für original_login_name zwischen last_successful_logon und login_time.
|
||
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.
|
||
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.
|
||
open_transaction_count |
int |
Die Anzahl der offenen Transaktionen pro Sitzung.
|
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)