Aracılığıyla paylaş


sys.dm_exec_connections (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsMicrosoft Fabric'te SQL analitiği uç noktasıMicrosoft Fabric'te DepoMicrosoft Fabric'te SQL veritabanı

Bu veritabanı motoru örneğine kurulan bağlantılar ve her bağlantının detayları hakkında bilgi döndürür. SQL Server ve Azure SQL Managed Instance için sunucu çapında bağlantı bilgisi döndürür. Azure SQL Veritabanı'nda mevcut veritabanı için bağlantı bilgilerini döndürür. Azure SQL Veritabanı'ndaki elastik havuzlardaki veritabanları için aynı elastik havuzdaki tüm veritabanları için bağlantı bilgilerini döndürür.

Uyarı

Bunu Azure Synapse Analytics veya Analytics Platform System (PDW)'deki özel SQL havuzundan adlandırmak için bkz. sys.dm_pdw_exec_connections (Transact-SQL) ). Serverless SQL pool veya Microsoft Fabric için .sys.dm_exec_connections

Sütun adı Veri türü Description
session_id int Bu bağlantıyla ilişkili oturumu tanımlar. Boş değer atanabilir.
most_recent_session_id int Bu bağlantıyla ilişkili en son isteğin oturum kimliğini temsil eder. (SOAP bağlantıları başka bir oturumda tekrar kullanılabilir.) Geçersiz bir durumdur.
connect_time datetime Bağlantı kurulduğu zaman damgası. Null olamaz.
net_transport nvarchar(40) MARS kullanıldığında, mantıksal bir oturuma bağlı her ek bağlantı için Session'u döndürür.

Not: Bu bağlantının kullandığı fiziksel taşıma protokolünü tanımlar. Null olamaz.
protocol_type nvarchar(40) Yükün protokol türünü belirtir. Şu anda TDS ("TSQL"), "SOAP" ve "Veritabanı Aynalama" arasında ayrım yapmaktadır. Boş değer atanabilir.
protocol_version int Bu bağlantıyla ilişkili veri erişim protokolünün bir versiyonu. Boş değer atanabilir.
endpoint_id int Bağlantı türünü tanımlayan bir tanımlayıcı. Bu, endpoint_id görünümü sorgulamak sys.endpoints için kullanılabilir. Boş değer atanabilir.
encrypt_option nvarchar(40) Bu bağlantı için şifrelemenin etkin olup olmadığını tanımlamak için boolean değeri. Null olamaz.

HADR yansıtma uç noktaları için bu sütun her zaman YANLIŞ döner. Bunun yerine DMV'yi sys.database_mirroring_endpoints kullanarak HADR yansıtma uç noktasına bağlantıların şifreli olup olmadığını kontrol edin.
auth_scheme nvarchar(40) Bu bağlantıda kullanılan SQL Server/Windows Kimlik Doğrulama şemasını belirtir. Null olamaz.
node_affinity smallint Bu bağlantının yakınlığı olan bellek düğümünü tanımlar. Null olamaz.
num_reads int Bu bağlantı üzerinden gerçekleşen bayt okuma sayısı. Boş değer atanabilir.
num_writes int Bu bağlantı üzerinde gerçekleşen bayt yazı sayısı. Boş değer atanabilir.
last_read datetime Bu bağlantı üzerinden son okuma zamanı zaman damgası. Boş değer atanabilir.
last_write datetime Bu bağlantı üzerinde son yazma zamanı zaman damgası. Boş değer atanabilir.
net_packet_size int Bilgi ve veri transferi için kullanılan ağ paket boyutu. Boş değer atanabilir.
client_net_address varchar(48) Bu sunucuya bağlanan istemcinin host adresi. Boş değer atanabilir.
client_tcp_port int Bu bağlantıya bağlı istemci bilgisayarın port numarası. Boş değer atanabilir.

Azure SQL Veritabanı'nda bu sütun her zaman NULL döner.
local_net_address varchar(48) Bu bağlantının hedeflediği sunucudaki IP adresini temsil eder. Yalnızca TCP taşıma sağlayıcısını kullanan bağlantılar için mevcuttur. Boş değer atanabilir.

Azure SQL Veritabanı'nda bu sütun her zaman NULL döner.
local_tcp_port int TCP taşıması kullanan bir bağlantı ise, bu bağlantının hedeflediği sunucu TCP portunu temsil eder. Boş değer atanabilir.

Azure SQL Veritabanı'nda bu sütun her zaman NULL döner.
connection_id uniqueidentifier Her bağlantıyı benzersiz olarak tanımlar. Null olamaz.
parent_connection_id uniqueidentifier MARS oturumunun kullandığı birincil bağlantıyı belirler. Boş değer atanabilir.
most_recent_sql_handle varbinary(64) Bu bağlantıda çalıştırılan son isteğin SQL tutucu. Sütun most_recent_sql_handle her zaman sütunla most_recent_session_id senkronize olur. Boş değer atanabilir.
pdw_node_id int için geçerlidir: Azure Synapse Analytics, Analiz Platformu Sistemi (PDW)

Bu dağıtımın üzerinde olduğu düğümün tanımlayıcısı.

Permissions

SQL Server ve SQL Yönetilen Örneği'ne VIEW SERVER STATE izni gerekir.

Azure SQL Veritabanı Temel, S0 ve S1 hizmet hedeflerinde ve elastik havuzlardaki veritabanları için sunucu yönetici hesabı, Microsoft Entra yönetici hesabı veya ##MS_ServerStateReader## üyeliği gereklidir. Diğer tüm SQL Veritabanı hizmet hedeflerinde, veritabanında VIEW DATABASE STATE izni veya ##MS_ServerStateReader## sunucu rolü üyeliği gereklidir.

SQL Server 2022 ve üzeri için izinler

Sunucuda SUNUCU PERFORMANS DURUMUNU GÖRÜNTÜLE izni gerektirir.

Fiziksel birleşimler

sys.dm_exec_connections için fiziksel birleşmelerin diyagramı.

İlişki kardinaliteleri

İlk öğe İkinci element İlişki
sys.dm_exec_sessions.session_id sys.dm_exec_connections.session_id Bir-sıfır veya bir-çok
sys.dm_exec_requests.connection_id sys.dm_exec_connections.connection_id Çok-bir
sys.dm_broker_connections.connection_id sys.dm_exec_connections.connection_id One-to-one

En yaygın olarak, içindeki sys.dm_exec_connections her satır için tek bir eşleşen satır vardır sys.dm_exec_sessions. Ancak, sistem içi oturumlar veya Service Broker aktivasyon prosedürleri gibi bazı durumlarda, içinde eşleşen satır sys.dm_exec_connectionsolmayan bir satır olabilirsys.dm_exec_sessions.

MARS kullanıldığında, sys.dm_exec_connections bir satır için birden fazla satır olabilir sys.dm_exec_sessions, bir satır ana bağlantı için ve her MARS mantıksal oturumu için bir satır olabilir. Son satırlar, Session olarak ayarlanan sütundaki değerle net_transport tanımlanabilir. Bu bağlantılar için, sütunundaki connection_idsys.dm_exec_connections değer, devam eden MARS talepleri için sütundaki sys.dm_exec_requests değerle connection_id eşleşir.

Örnekler

Aşağıdaki Transact-SQL sorgu, bir sorgunun kendi bağlantısı hakkında bilgi toplar.

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;  

Sonraki Adımlar

aşağıdaki makalelerde ilgili kavramlar hakkında daha fazla bilgi edinin: