Jumlah maksimum koneksi di versi dan edisi SQL Server adalah 32.767.
Anda dapat menentukan berapa banyak koneksi yang dimiliki SQL Server saat ini dengan melihat:
SELECT ConnectionStatus = CASE WHEN dec.most_recent_sql_handle = 0x0
THEN 'Unused'
ELSE 'Used'
END
, CASE WHEN des.status = 'Sleeping'
THEN 'sleeping'
ELSE 'Not Sleeping'
END
, ConnectionCount = COUNT(1)
FROM sys.dm_exec_connections dec
INNER JOIN sys.dm_exec_sessions des ON dec.session_id = des.session_id
GROUP BY CASE WHEN des.status = 'Sleeping'
THEN 'sleeping'
ELSE 'Not Sleeping'
END
, CASE WHEN dec.most_recent_sql_handle = 0x0
THEN 'Unused'
ELSE 'Used'
END;
Jika rasio antara koneksi yang digunakan dan yang tidak terpakai dari kueri di atas memprihatinkan, kemungkinan pooling koneksi diaktifkan oleh aplikasi klien yang terhubung ke server, dan koneksi tersebut tidak digunakan secara efisien. Anda mungkin ingin meminta pengembang memodifikasi string koneksi untuk aplikasi ini untuk membatasi ukuran kumpulan koneksi, dan memastikan mereka membuang koneksi dengan benar. Jika koneksi tidak dibuang dengan benar, mereka akan tetap terbuka selama aplikasi klien berjalan.
Jika Anda merasa sangat gila, dan perlu menyingkirkan semua koneksi yang belum melakukan apa-apa baru-baru ini (terlepas dari apakah mereka benar-benar sedang melakukan pekerjaan), Anda dapat menjalankan kode berikut, yang akan menghasilkan daftar sesi yang bisa terbunuh. Anda harus menyalin dan menempelkan perintah yang dihasilkan ke jendela SSMS baru untuk benar-benar menjalankan perintah. Saya juga merekomendasikan agar resume Anda diperbarui untuk berjaga-jaga .
DECLARE @cmd NVARCHAR(MAX);
SET @cmd = '';
SELECT @cmd = @cmd +
CASE WHEN @cmd = '' THEN '' ELSE CHAR(13) + CHAR(10) END
+ 'KILL ' + CONVERT(VARCHAR(MAX), dec.session_id) + ';'
FROM sys.dm_exec_connections dec
WHERE dec.most_recent_sql_handle = 0x0;
PRINT @cmd;
Dimungkinkan untuk secara linear skala jumlah koneksi di luar 32.767 dengan membagikan data di beberapa node SQL Server. Namun, menurut saya, menggunakan sharding sebagai cara untuk mencapai batas jumlah koneksi sama dengan menggunakan bom atom untuk membunuh seekor laba-laba. Ini akan membunuh laba-laba, tetapi Anda mungkin memiliki masalah yang lebih besar di akhir hari. Belum lagi sangat sulit untuk membangun bom atom, belum lagi mengimplementasikan sharding dengan benar.