sys.dm_exec_connections (Transact-SQL)
Berlaku untuk:
SQL Server (semua versi yang didukung)
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
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, gunakan sys.dm_exec_connections.
| 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 ketika 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 SQL Server/Autentikasi Windows yang digunakan dengan koneksi ini. Tidak dapat diubah ke null. |
| node_affinity | smallint | Mengidentifikasi simpul memori yang memiliki afinitas koneksi ini. 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. Tidak 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 terhubung 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 yang 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 koneksi menggunakan transportasi TCP. Dapat diubah ke null. Di Azure SQL Database, kolom ini selalu mengembalikan NULL. |
| id_koneksi | uniqueidentifier | Mengidentifikasi setiap koneksi secara unik. Tidak dapat diubah ke null. |
| parent_connection_id | uniqueidentifier | 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 Azure Active Directory , 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.
Gabungan fisik
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 dengan 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: