sys.dm_exec_connections (T-SQL)
Berlaku untuk: Titik akhir analitik SQL ServerAzure SQL Database Azure SQL Managed Instance Azure Synapse Analytics SQL di Microsoft Fabric Warehouse 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_connections
Microsoft 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. Untuk titik akhir pencerminan HADR, kolom ini selalu mengembalikan FALSE. Gunakan DMV sebagai gantinya sys.database_mirroring_endpoints untuk memeriksa apakah koneksi ke titik akhir pencerminan HADR dienkripsi. |
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
Kardinalitas hubungan
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: