Delen via


sys.dm_exec_connections (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSQL Analytics-eindpunt in Microsoft FabricMagazijn in Microsoft FabricSQL-database in Microsoft Fabric

Geeft informatie terug over de verbindingen die zijn opgezet met deze instantie van de database-engine en de details van elke verbinding. Geeft serverbrede verbindingsinformatie terug voor SQL Server en Azure SQL Managed Instance. Geeft verbindingsinformatie terug voor de huidige database in Azure SQL Database. Geeft verbindingsinformatie terug voor alle databases in dezelfde elastische pool voor databases in elastische pools in Azure SQL Database.

Opmerking

Om dit aan te roepen vanuit een dedicated SQL-pool in Azure Synapse Analytics of Analytics Platform System (PDW), zie sys.dm_pdw_exec_connections (Transact-SQL). Gebruik voor serverless SQL pool of Microsoft Fabric sys.dm_exec_connections.

Kolomnaam Gegevenstype Description
sessie-id int Identificeert de sessie die aan deze verbinding is gekoppeld. Is null-waarde.
most_recent_session_id int Geeft de sessie-ID voor voor het meest recente verzoek dat aan deze verbinding is gekoppeld. (SOAP-verbindingen kunnen door een andere sessie worden hergebruikt.) Is ongedaan.
connect_time datetime Tijdstempel wanneer de verbinding werd gelegd. Is niet nulbaar.
net_transport Nvarchar(40) Wanneer MARS wordt gebruikt, geeft het Session terug voor elke extra verbinding die bij een MARS logische sessie hoort.

Notitie: Beschrijft het fysieke transportprotocol dat door deze verbinding wordt gebruikt. Is niet nulbaar.
protocol_type Nvarchar(40) Specificeert het protocoltype van de payload. Momenteel maakt het onderscheid tussen TDS ("TSQL"), "SOAP" en "Database Mirroring". Is null-waarde.
protocol_version int Versie van het data-toegangsprotocol dat aan deze verbinding is gekoppeld. Is null-waarde.
endpoint_id int Een identificatie die beschrijft welk type verbinding het is. Dit endpoint_id kan worden gebruikt om de weergave op te sys.endpoints vragen. Is null-waarde.
encrypt_option Nvarchar(40) Booleaanse waarde om te beschrijven of encryptie voor deze verbinding is ingeschakeld. Is niet nulbaar.

Voor HADR-spiegelingseindpunten geeft deze kolom altijd FOUT terug. Gebruik in plaats daarvan de sys.database_mirroring_endpoints DMV om te controleren of verbindingen met een HADR-mirroring-endpoint versleuteld zijn.
auth_scheme Nvarchar(40) Specificeert het SQL Server/Windows-authenticatieschema dat met deze verbinding wordt gebruikt. Is niet nulbaar.
node_affinity smallint Identificeert de geheugenknoop waarmee deze verbinding affiniteit heeft. Is niet nulbaar.
num_reads int Aantal byte-reads dat via deze verbinding heeft plaatsgevonden. Is null-waarde.
num_writes int Aantal byte-schrijfopdrachten die via deze verbinding hebben plaatsgevonden. Is null-waarde.
last_read datetime Tijdstempel bij de laatste lezing vond plaats via deze verbinding. Is null-waarde.
last_write datetime Tijdstempel bij het laatste schrijven over deze verbinding. Is null-waarde.
net_packet_size int Pakketgrootte van het netwerk gebruikt voor informatie- en gegevensoverdracht. Is null-waarde.
client_net_address Varchar(48) Hostadres van de client die verbinding maakt met deze server. Is null-waarde.
client_tcp_port int Poortnummer op de clientcomputer die aan deze verbinding is gekoppeld. Is null-waarde.

In Azure SQL Database geeft deze kolom altijd NULL terug.
local_net_address Varchar(48) Geeft het IP-adres weer op de server waarop deze verbinding gericht was. Alleen beschikbaar voor verbindingen via de TCP transportprovider. Is null-waarde.

In Azure SQL Database geeft deze kolom altijd NULL terug.
local_tcp_port int Geeft de TCP-poort van de server weer waarop deze verbinding gericht was als het een verbinding was die het TCP-transport gebruikte. Is null-waarde.

In Azure SQL Database geeft deze kolom altijd NULL terug.
connection_id uniqueidentifier Identificeert elke verbinding uniek. Is niet nulbaar.
parent_connection_id uniqueidentifier Identificeert de primaire verbinding die de MARS-sessie gebruikt. Is null-waarde.
most_recent_sql_handle varbinary(64) De SQL-handle van het laatste verzoek uitgevoerd op deze verbinding. De most_recent_sql_handle kolom is altijd synchroon met de kolom most_recent_session_id . Is null-waarde.
pdw_node_id int Van toepassing op: Azure Synapse Analytics, Analytics Platform System (PDW)

De id voor het knooppunt waarop deze distributie zich bevindt.

Permissions

Voor SQL Server en SQL Managed Instance is een machtiging vereist VIEW SERVER STATE .

Voor servicedoelstellingen van Azure SQL Database Basic, S0 en S1 en voor databases in elastische pools is het serverbeheerdersaccount , het Microsoft Entra-beheerdersaccount of het lidmaatschap van de ##MS_ServerStateReader##serverfunctie vereist. Voor alle andere SQL Database-servicedoelstellingen is de VIEW DATABASE STATE machtiging voor de database of het lidmaatschap van de ##MS_ServerStateReader## serverfunctie vereist.

Machtigingen voor SQL Server 2022 en hoger

Vereist de machtiging PRESTATIESTATUS VAN DE WEERGAVESERVER op de server.

Fysieke verbindingen

Diagram van fysieke joins voor sys.dm_exec_connections.

Relatiekardinaliteiten

Eerste element Tweede element Relatie
sys.dm_exec_sessions.session_id sys.dm_exec_connections.session_id Eén op nul of één op veel
sys.dm_exec_requests.connection_id sys.dm_exec_connections.connection_id Veel-op-een
sys.dm_broker_connections.connection_id sys.dm_exec_connections.connection_id One-to-one

Meestal is er voor elke rij in sys.dm_exec_connections één overeenkomende rij in sys.dm_exec_sessions. In sommige gevallen, zoals systeeminterne sessies of activatieprocedures van Service Broker , kan er echter een rij in sys.dm_exec_sessions zijn zonder een bijbehorende rij in sys.dm_exec_connections.

Wanneer MARS wordt gebruikt, kunnen er meerdere rijen in sys.dm_exec_connections zijn voor een rij in sys.dm_exec_sessions, één rij voor de ouderverbinding en één rij voor elke MARS-logische sessie. De laatste rijen kunnen worden geïdentificeerd aan de waarde in de net_transport kolom die op Sessie wordt gezet. Voor deze verbindingen komt de waarde in de connection_id kolom van sys.dm_exec_connections overeen met de waarde in de connection_id kolom van sys.dm_exec_requests voor lopende MARS-verzoeken.

Voorbeelden

De volgende Transact-SQL query verzamelt informatie over de eigen verbinding van een query.

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;  

Volgende stappen

Meer informatie over gerelateerde concepten vindt u in de volgende artikelen: