sys.dm_exec_connections (T-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analyticstitik akhir analitik SQL di Microsoft FabricWarehouse di Microsoft Fabric

Mengembalikan informasi tentang koneksi yang dibuat untuk instans mesin database ini dan detail setiap koneksi. Mengembalikan informasi koneksi luas server untuk SQL Server dan Azure SQL Managed Instance. Mengembalikan informasi koneksi untuk database saat ini di Azure SQL Database. Mengembalikan informasi koneksi untuk semua database dalam kumpulan elastis yang sama untuk database di kumpulan elastis di Azure SQL Database.

Catatan

Untuk memanggil ini dari kumpulan SQL khusus di Azure Synapse Analytics atau Analytics Platform System (PDW), lihat sys.dm_pdw_exec_connections (Transact-SQL). Untuk kumpulan SQL tanpa server atau penggunaan sys.dm_exec_connectionsMicrosoft Fabric .

Nama kolom Jenis data Deskripsi
id_sesi int Mengidentifikasi sesi yang terkait dengan koneksi ini. Dapat diubah ke null.
most_recent_session_id int Mewakili ID sesi untuk permintaan terbaru yang terkait dengan koneksi ini. (Koneksi SOAP dapat digunakan kembali oleh sesi lain.) Dapat diubah ke null.
connect_time datetime Tanda waktu saat koneksi dibuat. Tidak dapat diubah ke null.
net_transport nvarchar(40) Saat MARS digunakan, mengembalikan Sesi untuk setiap koneksi tambahan yang terkait dengan sesi logis MARS.

Catatan: Menjelaskan protokol transportasi fisik yang digunakan oleh koneksi ini. Tidak dapat diubah ke null.
protocol_type nvarchar(40) Menentukan jenis protokol payload. Saat ini membedakan antara TDS ("TSQL"), "SOAP", dan "Pencerminan Database". Dapat diubah ke null.
protocol_version int Versi protokol akses data yang terkait dengan koneksi ini. Dapat diubah ke null.
endpoint_id int Pengidentifikasi yang menjelaskan jenis koneksinya. Ini endpoint_id dapat digunakan untuk mengkueri sys.endpoints tampilan. Dapat diubah ke null.
encrypt_option nvarchar(40) Nilai Boolean untuk menjelaskan apakah enkripsi diaktifkan untuk koneksi ini. Tidak dapat diubah ke null.
auth_scheme nvarchar(40) Menentukan skema Autentikasi SQL Server/Windows yang digunakan dengan koneksi ini. Tidak dapat diubah ke null.
node_affinity smallint Mengidentifikasi simpul memori tempat koneksi ini memiliki afinitas. Tidak dapat diubah ke null.
num_reads int Jumlah pembacaan byte yang telah terjadi melalui koneksi ini. Dapat diubah ke null.
num_writes int Jumlah penulisan byte yang telah terjadi melalui koneksi ini. Dapat diubah ke null.
last_read datetime Tanda waktu ketika pembacaan terakhir terjadi melalui koneksi ini. Dapat diubah ke null.
last_write datetime Tanda waktu ketika penulisan terakhir terjadi melalui koneksi ini. Dapat diubah ke null.
net_packet_size int Ukuran paket jaringan yang digunakan untuk informasi dan transfer data. Dapat diubah ke null.
client_net_address varchar(48) Alamat host klien yang tersambung ke server ini. Dapat diubah ke null.
client_tcp_port int Nomor port pada komputer klien yang terkait dengan koneksi ini. Dapat diubah ke null.

Di Azure SQL Database, kolom ini selalu mengembalikan NULL.
local_net_address varchar(48) Mewakili alamat IP pada server yang ditargetkan koneksi ini. Hanya tersedia untuk koneksi menggunakan penyedia transportasi TCP. Dapat diubah ke null.

Di Azure SQL Database, kolom ini selalu mengembalikan NULL.
local_tcp_port int Mewakili port TCP server yang ditargetkan koneksi ini jika merupakan koneksi menggunakan transportasi TCP. Dapat diubah ke null.

Di Azure SQL Database, kolom ini selalu mengembalikan NULL.
id_koneksi pengidentifikasi unik Mengidentifikasi setiap koneksi secara unik. Tidak dapat diubah ke null.
parent_connection_id pengidentifikasi unik Mengidentifikasi koneksi utama yang digunakan sesi MARS. Dapat diubah ke null.
most_recent_sql_handle varbinary(64) Handel SQL dari permintaan terakhir yang dijalankan pada koneksi ini. Kolom most_recent_sql_handle selalu sinkron dengan most_recent_session_id kolom. Dapat diubah ke null.
pdw_node_id int Berlaku untuk: Azure Synapse Analytics, Analytics Platform System (PDW)

Pengidentifikasi untuk simpul tempat distribusi ini aktif.

Izin

Pada SQL Server dan SQL Managed Instance, memerlukan VIEW SERVER STATE izin.

Pada tujuan layanan Azure SQL Database Basic, S0, dan S1, dan untuk database di kumpulan elastis, akun admin server, akun admin Microsoft Entra, atau keanggotaan dalam##MS_ServerStateReader## peran server diperlukan. Pada semua tujuan layanan SQL Database lainnya, izin VIEW DATABASE STATE pada database, atau keanggotaan dalam ##MS_ServerStateReader## peran server diperlukan.

Izin untuk SQL Server 2022 dan yang lebih baru

Memerlukan izin TAMPILKAN STATUS PERFORMA SERVER pada server.

Gabungan fisik

Diagram of physical joins for sys.dm_exec_connections.

Kardinalitas hubungan

Elemen pertama Elemen kedua Hubungan
sys.dm_exec_sessions.session_id sys.dm_exec_connections.session_id Satu-ke-nol atau satu-ke-banyak
sys.dm_exec_requests.connection_id sys.dm_exec_connections.connection_id Banyak-ke-satu
sys.dm_broker_connections.connection_id sys.dm_exec_connections.connection_id One-to-one

Paling umum, untuk setiap baris di sys.dm_exec_connections ada satu baris yang cocok di sys.dm_exec_sessions. Namun, dalam beberapa kasus seperti sesi internal sistem atau prosedur aktivasi Service Broker , mungkin ada baris tanpa sys.dm_exec_sessions baris yang cocok di sys.dm_exec_connections.

Saat MARS digunakan, mungkin ada beberapa baris untuk sys.dm_exec_connections baris dalam sys.dm_exec_sessions, satu baris untuk koneksi induk, dan satu baris untuk setiap sesi logis MARS. Baris terakhir dapat diidentifikasi oleh nilai dalam kolom yang net_transport diatur ke Sesi. Untuk koneksi ini, nilai di connection_id kolom sys.dm_exec_connections cocok dengan nilai di connection_id kolom sys.dm_exec_requests untuk permintaan MARS yang sedang berlangsung.

Contoh

Kueri Transact-SQL berikut mengumpulkan informasi tentang koneksi kueri sendiri.

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;  

Langkah berikutnya

Pelajari selengkapnya tentang konsep terkait dalam artikel berikut: