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 SQLAzure Synapse Analytics
Koncový bod analýzy SQL v Microsoft Fabric
Sklad v Microsoft Fabric
Databáze SQL v Microsoft Fabric
Dynamický sys.dm_exec_sessions management view vrací jeden řádek na ověřenou relaci na SQL Server.
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.
Note
Pro označení tohoto pohledu z Azure Synapse Analytics (pouze dedikovaný SQL pool) 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é nejsou plně přihlášeny při dotazu na toto DMV, se zobrazují 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 nebo 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. Uživatel nastaví kontextové informace pomocí tvrzení.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 projít mnoha implicitními nebo explicitními přepínáním kontextu po počátečním spojení, pokud EXECUTE AS byla použita. |
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á. Applies to: Azure Synapse Analytics. |
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í pro: SQL Server 2022 (16.x) a novější verze. |
time_zone |
nvarchar(128) | Ne | Identifikuje aktuální hodnotu časového pásma sezení. Výchozí hodnota je LOCAL. Pokud je časové pásmo sys.time_zone_info relace upraveno, pak hodnota obsahuje zadanou hodnotu časového pásma ze sloupce name v systémovém pohledu. |
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.
SQL Server 2019 (15.x) a starší verze vyžadují VIEW SERVER STATE zobrazení všech relací na serveru. SQL Server 2022 (16.x) a novější verze vyžadují VIEW SERVER PERFORMANCE STATE oprávnění k serveru.
Azure SQL Database vyžaduje VIEW DATABASE STATE vidět všechna spojení s aktuální databází. V databázi master to nemůžete udělitVIEW DATABASE STATE.
Poznámky
Když common criteria compliance enabled je možnost konfigurace serveru povolena, následující sloupce zobrazují statistiky přihlášení:
last_successful_logonlast_unsuccessful_logonunsuccessful_logons
Pokud common criteria compliance enabled není možnost povolena, tyto sloupce vrátí nulové hodnoty. Pro více informací o nastavení této možnosti konfigurace serveru viz Server configuration: common criteria compliance enabled (povoleno dodržování common criteria).
Admin connections on Azure SQL Database see one row per authenticated session. Relace sa , které se objevují ve výsledné sadě, neovlivňují uživatelskou kvótu pro relace. Ne-administrá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 | Relationship |
|---|---|---|---|
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;