Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
Azure SQL Database
Spravovaná instance Azure SQL
Azure Synapse Analytics
Analytics Platform System (PDW)
Koncový bod analýzy SQL v Microsoft Fabric
Sklad v Microsoft Fabric
Databáze SQL v Microsoft Fabric
Vrací jeden řádek na ověřenou relaci na SQL Serveru.
sys.dm_exec_sessions je pohled v serverovém rozsahu, který zobrazuje informace o všech aktivních uživatelských připojeních a interních úkolech. Tyto informace zahrnují verzi klienta, název klientského programu, čas přihlášení klienta, uživatele přihlášení, aktuální nastavení relace a další. Nejprve použijte sys.dm_exec_sessions k zobrazení aktuálního zatížení systému a identifikaci zajímavé relace, a poté k získání dalších informací o této relaci pomocí jiných dynamických manažerských pohledů nebo funkcí dynamického řízení.
Pohledy sys.dm_exec_connectionssys.dm_exec_sessions, , sys.dm_exec_requests a dynamické správy se mapují na zastaralý pohled kompatibility systému sys.sysprocesses.
Poznámka:
Pro označení tohoto pohledu z Azure Synapse Analytics (pouze dedikovaný SQL pool) nebo Analytics Platform System (PDW) viz sys.dm_pdw_nodes_exec_sessions. Použít sys.dm_exec_sessions pro Azure Synapse Analytics (pouze serverless SQL pool) nebo Microsoft Fabric.
| Název sloupce | Datový typ | Nullovatelný | Description |
|---|---|---|---|
session_id |
smallint | Ne | Identifikuje relaci přidruženou ke každému aktivnímu primárnímu připojení. |
login_time |
datetime | Ne | Čas vytvoření relace Relace, které v době dotazu na toto DMV ještě nebyly úplně přihlášeny, jsou zobrazeny s časem přihlášení .1900-01-01 |
host_name |
nvarchar(128) | Ano | Název klientské pracovní stanice, která je specifická pro danou relaci. Hodnota je NULL určená pro interní relace.Bezpečnostní poznámka: Klientská aplikace poskytuje název pracovní stanice a může poskytovat nepřesná data. Nespoléhejte na HOST_NAME něj jako na bezpečnostní prvek. |
program_name |
nvarchar(128) | Ano | Název klientského programu, který inicioval relaci. Hodnota je NULL určená pro interní relace. |
host_process_id |
int | Ano | ID procesu klientského programu, který relaci zahájil. Hodnota je NULL určená pro interní relace. |
client_version |
int | Ano | Verze rozhraní protokolu TDS, kterou klient používá k připojení k serveru. Hodnota je NULL určená pro interní relace. |
client_interface_name |
nvarchar(32) | Ano | Název knihovny/ovladače, který klient používá ke komunikaci se serverem. Hodnota je NULL určená pro interní relace. |
security_id |
varbinary(85) | Ne | Windows Security ID spojené s přihlášením. |
login_name |
nvarchar(128) | Ne | Přihlašovací jméno SQL Serveru, ve kterém se relace právě spouští. Pro původní přihlašovací jméno, které relaci vytvořilo, viz original_login_name. Může to být přihlášení ověřené SQL Server nebo uživatelské jméno ověřené Windows doménou. |
nt_domain |
nvarchar(128) | Ano | Windows doména pro klienta, pokud relace používá Windows Authentication nebo důvěryhodné připojení. Tato hodnota platí NULL pro interní relace a uživatele mimo doménu. |
nt_user_name |
nvarchar(128) | Ano | Windows uživatelské jméno klienta, pokud relace používá Windows Authentication nebo důvěryhodné připojení. Tato hodnota platí NULL pro interní relace a uživatele mimo doménu. |
status |
nvarchar(30) | Ne | Stav relace. Možné hodnoty:Running - V současnosti spuštěný jeden nebo více požadavkůSleeping - V současnosti neběží žádné požadavkyDormant - Relace byla resetována kvůli poolování spojení a nyní je v prelogin stavu.Preconnect - Session je v klasifikátoru Resource Governor. |
context_info |
varbinary(128) | Ano |
CONTEXT_INFO hodnota pro relaci. Kontextové informace nastavuje uživatel pomocí příkazu SET CONTEXT_INFO . |
cpu_time |
int | Ne | CPU čas v milisekundách, využitý touto relací. |
memory_usage |
int | Ne | Počet 8 KB stránek paměti využitých touto relací. |
total_scheduled_time |
int | Ne | Celkový čas, v milisekundách, po který byla relace (požadavky vnitro) naplánována k vykonání. |
total_elapsed_time |
int | Ne | Čas v milisekundách od začátku sezení. |
endpoint_id |
int | Ne | ID koncového bodu spojeného s relací. |
last_request_start_time |
datetime | Ne | Čas, kdy začala poslední žádost na sezení. Tento čas zahrnuje právě vykonávaný požadavek. |
last_request_end_time |
datetime | Ano | Čas posledního dokončení požadavku v relaci. |
reads |
bigint | Ne | Počet fyzických čtení provedených na základě požadavků v této sezení během této sekce. |
writes
1 |
bigint | Ne | Počet fyzických zápisů provedených na základě požadavků během této relace. |
logical_reads |
bigint | Ne | Počet logických čtení provedených požadavky v této relaci během této relace. |
is_user_process |
bit | Ne |
0 pokud je relace systémová relace. Jinak je to 1. |
text_size |
int | Ne |
TEXTSIZE nastavení pro relaci. |
language |
nvarchar(128) | Ano |
LANGUAGE nastavení pro relaci. |
date_format |
nvarchar(3) | Ano |
DATEFORMAT nastavení pro relaci. |
date_first |
smallint | Ne |
DATEFIRST nastavení pro relaci. |
quoted_identifier |
bit | Ne |
QUOTED_IDENTIFIER nastavení pro relaci. |
arithabort |
bit | Ne |
ARITHABORT nastavení pro relaci. |
ansi_null_dflt_on |
bit | Ne |
ANSI_NULL_DFLT_ON nastavení pro relaci. |
ansi_defaults |
bit | Ne |
ANSI_DEFAULTS nastavení pro relaci. |
ansi_warnings |
bit | Ne |
ANSI_WARNINGS nastavení pro relaci. |
ansi_padding |
bit | Ne |
ANSI_PADDING nastavení pro relaci. |
ansi_nulls |
bit | Ne |
ANSI_NULLS nastavení pro relaci. |
concat_null_yields_null |
bit | Ne |
CONCAT_NULL_YIELDS_NULL nastavení pro relaci. |
transaction_isolation_level |
smallint | Ne | Úroveň izolace transakcí relace.0 = Unspecified1 = ReadUncommitted2 = ReadCommitted3 = RepeatableRead4 = Serializable5 = Snapshot |
lock_timeout |
int | Ne |
LOCK_TIMEOUT nastavení pro relaci. Hodnota je v milisekundách. |
deadlock_priority |
int | Ne |
DEADLOCK_PRIORITY nastavení pro relaci. |
row_count |
bigint | Ne | Počet řádků vrácených během sezení až do tohoto okamžiku. |
prev_error |
int | Ne | ID poslední chyby vrácené v relaci |
original_security_id |
varbinary(85) | Ne | Windows Security ID, které je spojeno s .original_login_name |
original_login_name |
nvarchar(128) | Ne | Přihlašovací jméno SQL Serveru, které klient použil k vytvoření této relace. Může to být přihlašovací jméno ověřené SQL Serverem, uživatelské jméno domény ověřené Windows nebo uzavřený uživatel databáze. Například relace mohla proběhnout mnoha implicitními nebo explicitními přepínáním kontextu po počátečním spojení, například pokud je použito EXECUTE AS . |
last_successful_logon |
datetime | Ano | Čas posledního úspěšného přihlášení před original_login_name začátkem aktuální relace. |
last_unsuccessful_logon |
datetime | Ano | Čas posledního neúspěšného pokusu o přihlášení před original_login_name začátkem aktuální relace. |
unsuccessful_logons |
bigint | Ano | Počet neúspěšných pokusů o přihlášení pro mezi original_login_name a last_successful_logonlogin_time. |
group_id |
int | Ne | ID skupiny úloh, do které tato relace patří. |
database_id |
smallint | Ne | ID aktuální databáze pro každou relaci. Ve službě Azure SQL Database jsou hodnoty jedinečné v rámci jedné databáze nebo elastického fondu, ale ne v rámci logického serveru. platí pro: SQL Server 2012 (11.x) a novější verze. |
authenticating_database_id |
int | Ano | ID databáze ověřující objekt zabezpečení. Pro přihlášení je 0hodnota . Pro uživatele databáze s omezením je hodnota ID databáze obsažené databáze.platí pro: SQL Server 2012 (11.x) a novější verze. |
open_transaction_count |
int | Ne | Počet otevřených transakcí na relaci platí pro: SQL Server 2012 (11.x) a novější verze. |
pdw_node_id |
int | Ne | Identifikátor uzlu, na který je tato distribuce zapnutá. Vztahuje se na: Azure Synapse Analytics a Analytics Platform System (PDW). |
page_server_reads |
bigint | Ne | Počet přečtených stránek na serveru provedených požadavky v této relaci během této relace. Platí pro: Azure SQL Database Hyperscale. |
contained_availability_group_id |
uniqueidentifier | Ano | ID skupiny dostupnosti. Platí na: SQL Server 2025 (17.x) a novější verze. |
1 Specifikuje, kdy je stránka v buffer poolu označena jako špinavá. Tato hodnota přímo neodpovídá skutečným zápisům, protože stejná stránka může být označena vícekrát. Tyto čítače se na konci dávky agregují.
Povolení
Každý si může prohlédnout informace o své relaci.
V SQL Server 2019 (15.x) a starších verzích je nutné VIEW SERVER STATE vidět všechny relace na serveru. V SYSTÉMU SQL Server 2022 (16.x) a novějších verzích vyžaduje VIEW SERVER PERFORMANCE STATE oprávnění k serveru.
V SQL databázi je potřeba VIEW DATABASE STATE vidět všechna spojení s aktuální databází.
VIEW DATABASE STATE Nelze je v databázi master udělit.
Poznámky
Když common criteria compliance enabled je možnost konfigurace serveru povolena, statistiky přihlášení se zobrazují v následujících sloupcích.
last_successful_logonlast_unsuccessful_logonunsuccessful_logons
Pokud tato možnost není povolena, tyto sloupce vrátí nulové hodnoty. Pro více informací o nastavení této možnosti konfigurace serveru viz Povolit konfiguraci souladu s běžnými kritérii.
Administrátorská připojení v Azure SQL Database vidí jeden řádek na ověřenou relaci. Relace sa , které se objevují ve výsledcích, nemají žádný vliv na uživatelskou kvótu pro relace. Neadministrátorská připojení vidí pouze informace týkající se uživatelských relací jejich databáze.
Kvůli rozdílům v tom, jak jsou zaznamenány, open_transaction_count nemusí sys.dm_tran_session_transactionsodpovídat .open_transaction_count.
Kardinality relací
| Od | To | Přihlásit se | Vztah |
|---|---|---|---|
sys.dm_exec_sessions |
sys.dm_exec_requests | session_id |
Jedna ku nule nebo jedna ku mnohým |
sys.dm_exec_sessions |
sys.dm_exec_connections | session_id |
Jedna ku nule nebo jedna ku mnohým |
sys.dm_exec_sessions |
sys.dm_tran_session_transactions | session_id |
Jedna ku nule nebo jedna ku mnohým |
sys.dm_exec_sessions |
sys.dm_exec_cursors (session_id | 0) |
session_id CROSS APPLYOUTER APPLY |
Jedna ku nule nebo jedna ku mnohým |
sys.dm_exec_sessions |
sys.dm_db_session_space_usage | session_id |
One-to-one |
Examples
A. Najděte uživatele, kteří jsou připojeni k serveru
Následující příklad najde uživatele připojené k serveru a vrátí počet relací pro každého uživatele.
SELECT login_name,
COUNT(session_id) AS session_count
FROM sys.dm_exec_sessions
GROUP BY login_name;
B. Najděte dlouhotrvající kurzory
Následující příklad ukazuje kurzory, které byly otevřené déle než určitou dobu, kdo kurzory vytvořil a na jaké relaci se kurzory nacházejí.
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;
C. Najděte nečinné relace, kde jsou otevřené transakce
Následující příklad najde relace, které mají otevřené transakce a jsou nečinné. Nečinná relace je taková, kdy momentálně neběží žádný požadavek.
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. Najděte informace o vlastním propojení dotazu
Následující příklad shromažďuje informace o vlastním spojení dotazu:
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;
Související obsah
- zobrazení dynamické správy systému
- zobrazení a funkce související se spouštěním dynamické správy (Transact-SQL)