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:
Chcete-li to vyvolat z dedikovaného SQL poolu v Azure Synapse Analytics nebo Analytics Platform System (PDW), viz sys.dm_pdw_nodes_exec_sessions. Pro serverless SQL pool nebo Microsoft Fabric použijte sys.dm_exec_sessions.
| Název sloupce | Datový typ | Popis a informace specifické pro verzi |
|---|---|---|
session_id |
smallint | Identifikuje relaci přidruženou ke každému aktivnímu primárnímu připojení. Není nulovatelný. |
login_time |
datetime | Čas vytvoření relace Není nulovatelný. 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) | Název klientské pracovní stanice, která je specifická pro danou relaci. Hodnota je NULL určená pro interní relace. Nullable.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) | Název klientského programu, který inicioval relaci. Hodnota je NULL určená pro interní relace. Nullable. |
host_process_id |
int | ID procesu klientského programu, který relaci zahájil. Hodnota je NULL určená pro interní relace. Nullable. |
client_version |
int | Verze rozhraní protokolu TDS, kterou klient používá k připojení k serveru. Hodnota je NULL určená pro interní relace. Nullable. |
client_interface_name |
nvarchar(32) | Název knihovny/ovladače, který klient používá ke komunikaci se serverem. Hodnota je NULL určená pro interní relace. Nullable. |
security_id |
varbinary(85) | Windows Security ID spojené s přihlášením. Není nulovatelný. |
login_name |
nvarchar(128) | 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. Není nulovatelný. |
nt_domain |
nvarchar(128) | 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. Nullable. |
nt_user_name |
nvarchar(128) | 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. Nullable. |
status |
nvarchar(30) | 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.Není nulovatelný. |
context_info |
varbinary(128) |
CONTEXT_INFO hodnota pro relaci. Kontextové informace nastavuje uživatel pomocí příkazu SET CONTEXT_INFO . Nullable. |
cpu_time |
int | CPU čas v milisekundách, využitý touto relací. Není nulovatelný. |
memory_usage |
int | Počet 8 KB stránek paměti využitých touto relací. Není nulovatelný. |
total_scheduled_time |
int | Celkový čas, v milisekundách, po který byla relace (požadavky vnitro) naplánována k vykonání. Není nulovatelný. |
total_elapsed_time |
int | Čas v milisekundách od začátku sezení. Není nulovatelný. |
endpoint_id |
int | ID koncového bodu spojeného s relací. Není nulovatelný. |
last_request_start_time |
datetime | Čas, kdy začala poslední žádost na sezení. Tento čas zahrnuje právě vykonávaný požadavek. Není nulovatelný. |
last_request_end_time |
datetime | Čas posledního dokončení požadavku v relaci. Nullable. |
reads |
bigint | Počet přečtených čtení provedených na základě požadavků v této relaci během této relace. Není nulovatelný. |
writes |
bigint | Počet zápisů provedených na základě požadavků v této relaci během této relace. Není nulovatelný. |
logical_reads |
bigint | Počet logických čtení provedených požadavky v této relaci během této relace. Není nulovatelný. |
is_user_process |
bit |
0 pokud je relace systémová relace. Jinak je to 1. Není nulovatelný. |
text_size |
int |
TEXTSIZE nastavení pro relaci. Není nulovatelný. |
language |
nvarchar(128) |
LANGUAGE nastavení pro relaci. Nullable. |
date_format |
nvarchar(3) |
DATEFORMAT nastavení pro relaci. Nullable. |
date_first |
smallint |
DATEFIRST nastavení pro relaci. Není nulovatelný. |
quoted_identifier |
bit |
QUOTED_IDENTIFIER nastavení pro relaci. Není nulovatelný. |
arithabort |
bit |
ARITHABORT nastavení pro relaci. Není nulovatelný. |
ansi_null_dflt_on |
bit |
ANSI_NULL_DFLT_ON nastavení pro relaci. Není nulovatelný. |
ansi_defaults |
bit |
ANSI_DEFAULTS nastavení pro relaci. Není nulovatelný. |
ansi_warnings |
bit |
ANSI_WARNINGS nastavení pro relaci. Není nulovatelný. |
ansi_padding |
bit |
ANSI_PADDING nastavení pro relaci. Není nulovatelný. |
ansi_nulls |
bit |
ANSI_NULLS nastavení pro relaci. Není nulovatelný. |
concat_null_yields_null |
bit |
CONCAT_NULL_YIELDS_NULL nastavení pro relaci. Není nulovatelný. |
transaction_isolation_level |
smallint | Úroveň izolace transakcí relace.0 = Unspecified1 = ReadUncommitted2 = ReadCommitted3 = RepeatableRead4 = Serializable5 = SnapshotNení nulovatelný. |
lock_timeout |
int |
LOCK_TIMEOUT nastavení pro relaci. Hodnota je v milisekundách. Není nulovatelný. |
deadlock_priority |
int |
DEADLOCK_PRIORITY nastavení pro relaci. Není nulovatelný. |
row_count |
bigint | Počet řádků vrácených během sezení až do tohoto okamžiku. Není nulovatelný. |
prev_error |
int | ID poslední chyby vrácené v relaci Není nulovatelný. |
original_security_id |
varbinary(85) | Windows Security ID, které je spojeno s .original_login_name Není nulovatelný. |
original_login_name |
nvarchar(128) | 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. Relace mohla například po počátečním spojení projít mnoha implicitními nebo explicitními přepínáním kontextu, pokud je použito EXECUTE AS . Není nulovatelný. |
last_successful_logon |
datetime | Čas posledního úspěšného přihlášení před original_login_name začátkem aktuální relace. |
last_unsuccessful_logon |
datetime | Č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 | Počet neúspěšných pokusů o přihlášení pro mezi original_login_name a last_successful_logonlogin_time. |
group_id |
int | ID skupiny úloh, do které tato relace patří. Není nulovatelný. |
database_id |
smallint | 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 | 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 | Počet otevřených transakcí na relaci platí pro: SQL Server 2012 (11.x) a novější verze. |
pdw_node_id |
int | Identifikátor uzlu, na který je tato distribuce zapnutá. Vztahuje se na: Azure Synapse Analytics a Analytics Platform System (PDW). |
page_server_reads |
bigint | Počet přečtených stránek na serveru provedených požadavky v této relaci během této relace. Není nulovatelný. Platí pro: Azure SQL Database Hyperscale. |
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 Server configuration: common criteria compliance enabled (povoleno dodržování common criteria).
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;
GO
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)