sys.dm_exec_connections (Transact-SQL)

Platí pro:SQL ServerAzure SQL DatabaseSpravovaná instance Azure SQLAzure Synapse AnalyticsKoncový bod analýzy SQL v Microsoft FabricSklad v Microsoft FabricDatabáze SQL v Microsoft Fabric

Vrací informace o spojení navázaných k této instanci databázového enginu a podrobnosti každého spojení. Vrací informace o připojení serveru pro SQL Server a Azure SQL Managed Instance. Vrací informace o spojení pro aktuální databázi v Azure SQL Database. Vrací informace o spojení pro všechny databáze ve stejném elastickém poolu pro databáze v elastických poolech v Azure SQL Database.

Note

Pro volání z dedikovaného SQL poolu v Azure Synapse Analytics nebo Analytics Platform System (PDW) viz sys.dm_pdw_exec_connections (Transact-SQL). Pro serverless SQL pool nebo Microsoft Fabric použijte sys.dm_exec_connections.

Název sloupce Datový typ Description
identifikátor_sezení int Identifikuje relaci spojenou s tímto spojením. Může obsahovat hodnotu null.
most_recent_session_id int Představuje ID relace pro nejnovější požadavek spojený s tímto spojením. (SOAP spojení lze znovu použít v jiné relaci.) Je neplatný.
connect_time datetime Časové razítko, kdy bylo spojení navázáno. Není možné nastavit jako null.
net_transport nvarchar(40) Při použití MARS vrací relaci pro každé další spojení spojené s logickou relací MARS.

Poznámka: Popisuje fyzický transportní protokol, který toto spojení používá. Není možné nastavit jako null.
protocol_type nvarchar(40) Specifikuje typ protokolu užitečného zatížení. V současnosti rozlišuje mezi TDS ("TSQL"), "SOAP" a "Database Mirroring". Může obsahovat hodnotu null.
protocol_version int Verze protokolu pro přístup k datům spojená s tímto spojením. Může obsahovat hodnotu null.
endpoint_id int Identifikátor, který popisuje, o jaký typ spojení jde. To endpoint_id lze použít k dotazování pohledu sys.endpoints . Může obsahovat hodnotu null.
encrypt_option nvarchar(40) Booleovská hodnota popisující, zda je šifrování pro toto spojení povoleno. Není možné nastavit jako null.

Pro HADR zrcadlení koncových bodů tento sloupec vždy vrací FALSE. Místo toho použijte sys.database_mirroring_endpoints DMV k ověření, zda jsou připojení k HADR zrcadlovému endpointu šifrována.
auth_scheme nvarchar(40) Specifikuje schéma ověřování SQL Server/Windows používané s tímto spojením. Není možné nastavit jako null.
node_affinity smallint Identifikuje paměťový uzel, ke kterému má toto spojení afinitu. Není možné nastavit jako null.
num_reads int Počet čtení bajtů, které proběhly přes toto spojení. Může obsahovat hodnotu null.
num_writes int Počet zápisů do bajtů, které proběhly přes toto spojení. Může obsahovat hodnotu null.
last_read datetime Časové razítko, kdy se naposledy četlo, bylo přes toto spojení. Může obsahovat hodnotu null.
last_write datetime Časové razítko, kdy proběhlo poslední zápis přes toto spojení. Může obsahovat hodnotu null.
net_packet_size int Velikost síťového paketu používaná pro přenos informací a dat. Může obsahovat hodnotu null.
client_net_address Varchar(48) Adresa hostitele klienta připojujícího se k tomuto serveru. Může obsahovat hodnotu null.
client_tcp_port int Číslo portu na klientském počítači, který je s tímto spojením spojen. Může obsahovat hodnotu null.

V Azure SQL Database tento sloupec vždy vrací NULL.
local_net_address Varchar(48) Představuje IP adresu na serveru, na kterou toto spojení cílilo. Dostupné pouze pro spojení využívající TCP transportního poskytovatele. Může obsahovat hodnotu null.

V Azure SQL Database tento sloupec vždy vrací NULL.
local_tcp_port int Představuje TCP port serveru, na který toto spojení cílilo, pokud šlo o spojení využívající TCP transport. Může obsahovat hodnotu null.

V Azure SQL Database tento sloupec vždy vrací NULL.
connection_id uniqueidentifier Identifikuje každé připojení jedinečně. Není možné nastavit jako null.
parent_connection_id uniqueidentifier Identifikuje primární spojení, které relace MARS používá. Může obsahovat hodnotu null.
most_recent_sql_handle varbinary(64) SQL handle posledního požadavku provedeného na tomto spojení. Sloupec most_recent_sql_handle je vždy synchronizovaný se sloupcem most_recent_session_id . Může obsahovat hodnotu null.
pdw_node_id int platí pro: Azure Synapse Analytics, Analytics Platform System (PDW)

Identifikátor uzlu, na který je tato distribuce zapnutá.

Povolení

Na SQL Serveru a spravované instanci SQL vyžaduje VIEW SERVER STATE oprávnění.

U cílů služby Azure SQL Database Basic, S0 a S1 a pro databáze v elastických fondech se vyžaduje účet správce serveru , účet správce Microsoft Entra nebo členství v ##MS_ServerStateReader##roli serveru . U všech ostatních cílů služby SQL Database se vyžaduje buď oprávnění VIEW DATABASE STATE k databázi, nebo členství v roli serveru ##MS_ServerStateReader##.

Oprávnění pro SQL Server 2022 a novější

Vyžaduje VIEW oprávnění SERVER PERFORMANCE STATE na serveru.

Fyzické spoje

Schéma fyzických spojů pro sys.dm_exec_connections.

Kardinality relací

První prvek Druhý prvek Relationship
sys.dm_exec_sessions.session_id sys.dm_exec_connections.session_id Jedna ku nule nebo jedna ku mnohým
sys.dm_exec_requests.connection_id sys.dm_exec_connections.connection_id Many-to-one
sys.dm_broker_connections.connection_id sys.dm_exec_connections.connection_id One-to-one

Nejčastěji pro každý řádek v sys.dm_exec_connections existuje jeden shodný řádek v sys.dm_exec_sessions. Nicméně v některých případech, jako jsou interní systémové relace nebo aktivační procedury Service Broker , může být v řádku v sys.dm_exec_sessions bez odpovídajícího řádku sys.dm_exec_connections.

Při použití MARS může být více řádků sys.dm_exec_connections pro řádek v , sys.dm_exec_sessionsjeden řádek pro nadřazené spojení a jeden řádek pro každou logickou relaci MARS. Tyto poslední řádky lze identifikovat podle hodnoty ve sloupci nastaveném net_transport na Session. Pro tato spojení odpovídá hodnota ve connection_id sloupci pro sys.dm_exec_connectionsconnection_idsys.dm_exec_requests probíhající MARS požadavky.

Examples

Následující Transact-SQL dotaz 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  
JOIN sys.dm_exec_sessions AS s  
    ON c.session_id = s.session_id  
WHERE c.session_id = @@SPID;  

Další kroky

Další informace o souvisejících konceptech najdete v následujících článcích: