sql_server_connection_queries.sql
· 1.5 KiB · MySQL
Originalformat
-- 🔍 檢查目前 SQL Server 總連線數(包含系統連線)
SELECT COUNT(*) AS TotalConnections
FROM sys.dm_exec_sessions;
-- 🔍 只統計使用者的連線數(不包含 SQL Server 內部系統連線)
SELECT COUNT(*) AS UserConnections
FROM sys.dm_exec_sessions
WHERE is_user_process = 1;
-- 🔍 查詢目前 "活躍" 的連線數
SELECT COUNT(*) AS ActiveConnections
FROM sys.dm_exec_connections;
-- 🔍 查看每個 IP 連線的數量(用來分析哪個 IP 連接最多)
SELECT client_net_address, COUNT(*) AS ConnectionCount
FROM sys.dm_exec_connections
JOIN sys.dm_exec_sessions
ON sys.dm_exec_connections.session_id = sys.dm_exec_sessions.session_id
WHERE is_user_process = 1
GROUP BY client_net_address;
-- 🔍 用 sp_who2 查看詳細的連線資訊
-- 可以看到哪些帳號在連線、連線的主機、目前執行的查詢等
EXEC sp_who2;
-- 🔍 舊版 SQL Server 可用 sys.sysprocesses 查詢連線數
SELECT COUNT(*) AS TotalConnections
FROM sys.sysprocesses
WHERE dbid > 0;
-- ✅ 啟用進階選項(某些設定需要開啟這個才看得到)
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
-- 🔍 檢查 SQL Server 允許的最大連線數
EXEC sp_configure 'user connections';
-- 🔍 查詢 SQL Server 等待統計(找出系統可能的瓶頸)
-- 如果某個 wait_type 的等待時間很長,代表這個部分可能是效能瓶頸
SELECT wait_type, waiting_tasks_count, wait_time_ms
FROM sys.dm_os_wait_stats
ORDER BY wait_time_ms DESC;
| 1 | -- 🔍 檢查目前 SQL Server 總連線數(包含系統連線) |
| 2 | SELECT COUNT(*) AS TotalConnections |
| 3 | FROM sys.dm_exec_sessions; |
| 4 | |
| 5 | -- 🔍 只統計使用者的連線數(不包含 SQL Server 內部系統連線) |
| 6 | SELECT COUNT(*) AS UserConnections |
| 7 | FROM sys.dm_exec_sessions |
| 8 | WHERE is_user_process = 1; |
| 9 | |
| 10 | -- 🔍 查詢目前 "活躍" 的連線數 |
| 11 | SELECT COUNT(*) AS ActiveConnections |
| 12 | FROM sys.dm_exec_connections; |
| 13 | |
| 14 | -- 🔍 查看每個 IP 連線的數量(用來分析哪個 IP 連接最多) |
| 15 | SELECT client_net_address, COUNT(*) AS ConnectionCount |
| 16 | FROM sys.dm_exec_connections |
| 17 | JOIN sys.dm_exec_sessions |
| 18 | ON sys.dm_exec_connections.session_id = sys.dm_exec_sessions.session_id |
| 19 | WHERE is_user_process = 1 |
| 20 | GROUP BY client_net_address; |
| 21 | |
| 22 | -- 🔍 用 sp_who2 查看詳細的連線資訊 |
| 23 | -- 可以看到哪些帳號在連線、連線的主機、目前執行的查詢等 |
| 24 | EXEC sp_who2; |
| 25 | |
| 26 | -- 🔍 舊版 SQL Server 可用 sys.sysprocesses 查詢連線數 |
| 27 | SELECT COUNT(*) AS TotalConnections |
| 28 | FROM sys.sysprocesses |
| 29 | WHERE dbid > 0; |
| 30 | |
| 31 | -- ✅ 啟用進階選項(某些設定需要開啟這個才看得到) |
| 32 | EXEC sp_configure 'show advanced options', 1; |
| 33 | RECONFIGURE; |
| 34 | |
| 35 | -- 🔍 檢查 SQL Server 允許的最大連線數 |
| 36 | EXEC sp_configure 'user connections'; |
| 37 | |
| 38 | -- 🔍 查詢 SQL Server 等待統計(找出系統可能的瓶頸) |
| 39 | -- 如果某個 wait_type 的等待時間很長,代表這個部分可能是效能瓶頸 |
| 40 | SELECT wait_type, waiting_tasks_count, wait_time_ms |
| 41 | FROM sys.dm_os_wait_stats |
| 42 | ORDER BY wait_time_ms DESC; |
| 43 |