Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analysplattformssystem (PDW)
SQL-analysslutpunkt i Microsoft Fabric
Lager i Microsoft Fabric
SQL-databas i Microsoft Fabric
Returnerar en rad per autentiserad session på SQL Server.
sys.dm_exec_sessions är en server-scope-vy som visar information om alla aktiva användaranslutningar och interna uppgifter. Denna information inkluderar klientversion, programnamn, inloggningstid för klienten, inloggningsanvändare, aktuell sessionsinställning och mer. Använd sys.dm_exec_sessions för att först se den aktuella systembelastningen och identifiera en session av intresse, och sedan lära dig mer om den sessionen genom att använda andra dynamiska hanteringsvyer eller dynamiska hanteringsfunktioner.
, , och sys.dm_exec_requests dynamiska sys.dm_exec_connectionssys.dm_exec_sessionshanteringsvyer mappas till den föråldrade sys.sysprocesses systemkompatibilitetsvyn.
Anmärkning
För att anropa detta från en dedikerad SQL-pool i Azure Synapse Analytics eller Analytics Platform System (PDW), se sys.dm_pdw_nodes_exec_sessions. För serverless SQL-pool eller Microsoft Fabric, använd sys.dm_exec_sessions.
| Kolumnnamn | Datatyp | Beskrivning och versionsspecifik information |
|---|---|---|
session_id |
smallint | Identifierar den session som är associerad med varje aktiv primär anslutning. Inte nullbar. |
login_time |
datetime | Tid då sessionen upprättades. Inte nullbar. Sessioner som inte är helt inloggade när denna DMV frågas visas med inloggningstiden .1900-01-01 |
host_name |
nvarchar(128) | Namnet på klientarbetsstationen som är specifik för en session. Värdet är NULL för interna sessioner. Nullable.Säkerhetsnotis: Klientapplikationen anger arbetsstationens namn och kan ge felaktiga data. Lita inte på HOST_NAME den som en säkerhetsfunktion. |
program_name |
nvarchar(128) | Namnet på klientprogrammet som initierade sessionen. Värdet är NULL för interna sessioner. Nullable. |
host_process_id |
int | Process-ID för klientprogrammet som initierade sessionen. Värdet är NULL för interna sessioner. Nullable. |
client_version |
int | TDS-protokollversionen av gränssnittet som klienten använder för att ansluta till servern. Värdet är NULL för interna sessioner. Nullable. |
client_interface_name |
nvarchar(32) | Namn på bibliotek/drivrutin som används av klienten för att kommunicera med servern. Värdet är NULL för interna sessioner. Nullable. |
security_id |
varbinary(85) | Windows säkerhets-ID kopplat till inloggningen. Inte nullbar. |
login_name |
nvarchar(128) | SQL Server-inloggningsnamn som sessionen körs under. För det ursprungliga inloggningsnamnet som skapade sessionen, se original_login_name. Det kan vara ett SQL Server-autentiserat inloggningsnamn eller ett Windows-autentiserat domänanvändarnamn. Inte nullbar. |
nt_domain |
nvarchar(128) | Windows-domänen för klienten om sessionen använder Windows-autentisering eller en betrodd anslutning. Detta värde gäller NULL för interna sessioner och användare som inte är domänanvändare. Nullable. |
nt_user_name |
nvarchar(128) | Windows-användarnamn för klienten om sessionen använder Windows-autentisering eller en betrodd anslutning. Detta värde gäller NULL för interna sessioner och användare som inte är domänanvändare. Nullable. |
status |
nvarchar(30) | Status för sessionen. Möjliga värden:Running - Kör för närvarande en eller flera förfrågningarSleeping - Kör för närvarande inga förfrågningarDormant - Sessionen återställdes på grund av anslutningspoolning och är nu i förinloggningsläge.Preconnect - Session finns i Resource Governor-klassificeraren.Inte nullbar. |
context_info |
varbinary(128) |
CONTEXT_INFO för sessionen. Kontextinformationen ställs in av användaren med hjälp av satsen SET CONTEXT_INFO . Nullable. |
cpu_time |
int | CPU-tid, i millisekunder, används av denna session. Inte nullbar. |
memory_usage |
int | Antal 8-KB minnessidor som används av denna session. Inte nullbar. |
total_scheduled_time |
int | Total tid, i millisekunder, för vilken sessionen (förfrågningarna inom) var schemalagd för exekvering. Inte nullbar. |
total_elapsed_time |
int | Tid, i millisekunder, sedan sessionen etablerades. Inte nullbar. |
endpoint_id |
int | ID för slutpunkten som är kopplad till sessionen. Inte nullbar. |
last_request_start_time |
datetime | Tiden då den sista begäran om sessionen började. Denna gång inkluderar den pågående begäran. Inte nullbar. |
last_request_end_time |
datetime | Tidpunkten för den senaste slutförandet av en begäran om sessionen. Nullable. |
reads |
bigint | Antal läsningar som utförts, på begäran under denna session, under denna session. Inte nullbar. |
writes |
bigint | Antal skrivningar som utförts, enligt önskemål i denna session, under denna session. Inte nullbar. |
logical_reads |
bigint | Antal logiska läsningar utförda, av förfrågningar i denna session, under denna session. Inte nullbar. |
is_user_process |
bit |
0 om sessionen är en systemsession. Annars är det 1. Inte nullbar. |
text_size |
int |
TEXTSIZE för sessionen. Inte nullbar. |
language |
nvarchar(128) |
LANGUAGE för sessionen. Nullable. |
date_format |
nvarchar(3) |
DATEFORMAT för sessionen. Nullable. |
date_first |
smallint |
DATEFIRST för sessionen. Inte nullbar. |
quoted_identifier |
bit |
QUOTED_IDENTIFIER för sessionen. Inte nullbar. |
arithabort |
bit |
ARITHABORT för sessionen. Inte nullbar. |
ansi_null_dflt_on |
bit |
ANSI_NULL_DFLT_ON för sessionen. Inte nullbar. |
ansi_defaults |
bit |
ANSI_DEFAULTS för sessionen. Inte nullbar. |
ansi_warnings |
bit |
ANSI_WARNINGS för sessionen. Inte nullbar. |
ansi_padding |
bit |
ANSI_PADDING för sessionen. Inte nullbar. |
ansi_nulls |
bit |
ANSI_NULLS för sessionen. Inte nullbar. |
concat_null_yields_null |
bit |
CONCAT_NULL_YIELDS_NULL för sessionen. Inte nullbar. |
transaction_isolation_level |
smallint | Transaktionsisoleringsnivå för sessionen.0 = Unspecified1 = ReadUncommitted2 = ReadCommitted3 = RepeatableRead4 = Serializable5 = SnapshotInte nullbar. |
lock_timeout |
int |
LOCK_TIMEOUT för sessionen. Värdet är i millisekunder. Inte nullbar. |
deadlock_priority |
int |
DEADLOCK_PRIORITY för sessionen. Inte nullbar. |
row_count |
bigint | Antalet rader återkom under sessionen fram till denna punkt. Inte nullbar. |
prev_error |
int | ID för det senaste felet som returnerades i sessionen. Inte nullbar. |
original_security_id |
varbinary(85) | Windows säkerhets-ID som är kopplat till .original_login_name Inte nullbar. |
original_login_name |
nvarchar(128) | SQL Server-inloggningsnamn som klienten använde för att skapa denna session. Kan vara ett SQL Server-autentiserat inloggningsnamn, ett Windows-autentiserat domänanvändarnamn eller en användare av en innesluten databas. Sessionen kan ha gått igenom många implicita eller explicita kontextväxlingar efter den initiala anslutningen, till exempel om EXECUTE AS används. Inte nullbar. |
last_successful_logon |
datetime | Tiden för den senaste lyckade inloggningen innan original_login_name den aktuella sessionen började. |
last_unsuccessful_logon |
datetime | Tiden för det senaste misslyckade inloggningsförsöket original_login_name innan den nuvarande sessionen började. |
unsuccessful_logons |
bigint | Antal misslyckade inloggningsförsök för mellan original_login_name och last_successful_logonlogin_time. |
group_id |
int | ID för den arbetsbelastningsgrupp som den här sessionen tillhör. Inte nullbar. |
database_id |
smallint | ID för den aktuella databasen för varje session. I Azure SQL Database är värdena unika i en enskild databas eller en elastisk pool, men inte inom en logisk server. gäller för: SQL Server 2012 (11.x) och senare versioner. |
authenticating_database_id |
int | ID för databasen som autentiserar huvudnamnet. För inloggningar är 0värdet . För oberoende databasanvändare är värdet databas-ID för den inneslutna databasen.gäller för: SQL Server 2012 (11.x) och senare versioner. |
open_transaction_count |
int | Antal öppna transaktioner per session. gäller för: SQL Server 2012 (11.x) och senare versioner. |
pdw_node_id |
int | Identifieraren för noden som den här fördelningen är på. Gäller för: Azure Synapse Analytics och Analytics Platform System (PDW). |
page_server_reads |
bigint | Antal sidserverläsningar utförda, genom förfrågningar i denna session, under denna session. Inte nullbar. gäller för: Azure SQL Database Hyperscale. |
Permissions
Alla kan se sin egen sessionsinformation.
I SQL Server 2019 (15.x) och tidigare versioner krävs VIEW SERVER STATE att alla sessioner på servern ses. I SQL Server 2022 (16.x) och senare versioner kräver VIEW SERVER PERFORMANCE STATE behörighet på servern.
I SQL Database krävs VIEW DATABASE STATE att alla anslutningar till den aktuella databasen ses.
VIEW DATABASE STATE Kan inte beviljas i databasen master .
Anmärkningar
När serverkonfigurationsalternativet common criteria compliance enabled är aktiverat visas inloggningsstatistik i följande kolumner.
last_successful_logonlast_unsuccessful_logonunsuccessful_logons
Om detta alternativ inte är aktiverat returnerar dessa kolumner nollvärden. För mer information om hur man sätter detta serverkonfigurationsalternativ, se Serverkonfiguration: common criteria compliance aktiverad.
Administratörsanslutningarna i Azure SQL Database ser en rad per autentiserad session. De sa sessioner som visas i resultset påverkar inte användarkvoten för sessioner. De icke-administratörsanslutningar ser endast information som rör deras databasanvändarsessioner.
På grund av skillnader i hur de spelas open_transaction_count in, kanske de inte stämmer överens sys.dm_tran_session_transactions.open_transaction_count.
Relations kardinaliteter
| Från | Till | På/Ansök | Förhållande |
|---|---|---|---|
sys.dm_exec_sessions |
sys.dm_exec_requests | session_id |
Ett-till-noll eller ett-till-många |
sys.dm_exec_sessions |
sys.dm_exec_connections | session_id |
Ett-till-noll eller ett-till-många |
sys.dm_exec_sessions |
sys.dm_tran_session_transactions | session_id |
Ett-till-noll eller ett-till-många |
sys.dm_exec_sessions |
sys.dm_exec_cursors (session_id | 0) |
session_id CROSS APPLYOUTER APPLY |
Ett-till-noll eller ett-till-många |
sys.dm_exec_sessions |
sys.dm_db_session_space_usage | session_id |
One-to-one |
Examples
A. Hitta användare som är anslutna till servern
Följande exempel hittar de användare som är anslutna till servern och returnerar antalet sessioner för varje användare.
SELECT login_name,
COUNT(session_id) AS session_count
FROM sys.dm_exec_sessions
GROUP BY login_name;
B. Hitta långvariga markörer
Följande exempel visar vilka markörer som varit öppna under mer än en specifik tid, vem som skapade markörerna och vilken session markörerna är i.
USE master;
GO
SELECT creation_time,
cursor_id,
name,
c.session_id,
login_name
FROM sys.dm_exec_cursors(0) AS c
INNER JOIN sys.dm_exec_sessions AS s
ON c.session_id = s.session_id
WHERE DATEDIFF(mi, c.creation_time, GETDATE()) > 5;
GO
C. Hitta inaktiva sessioner som har öppna transaktioner
Följande exempel hittar sessioner som har öppna transaktioner och är inaktiva. En idle-session är en som inte har någon begäran igång just nu.
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. Hitta information om en frågas egen koppling
Följande exempel samlar information om en frågas egen koppling:
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
INNER JOIN sys.dm_exec_sessions AS s
ON c.session_id = s.session_id
WHERE c.session_id = @@SPID;