首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

系統預存程序 sp_ListConnections:依資料庫/應用程式/登入/用戶端過濾連線、發送訊息、強制中斷 (KILL) 完整實作

     編輯:關於SqlServer

DBA 需隨時掌握伺服器連線狀態:檢視阻塞、識別問題連線、發送警告、強制中斷。sp_ListConnections 系統預存程序整合過濾、操作、通知於一體。

八大參數 (皆為選填)

參數功能範例值
@DBUltra0=所有連線, 1=僅顯示阻塞/被阻塞連線1
@PCUltra0=所有連線, 1=僅顯示活躍連線 (正在執行 T-SQL)1
@DBName依資料庫名稱過濾 (支援萬用字元)'Northwind'
@AppName依應用程式名稱過濾'SQLAgent%'
@LoginName依登入名稱過濾'sa'
@HostName依用戶端主機名稱過濾'WEB-SERVER'
@DBTrain指定前四參數作用對象: D=資料庫, A=應用程式, L=登入, 其他=主機'D'
@PCTrain操作指令: 含 '@@SPID' 視為 T-SQL 執行; 純文字視為訊息發送; 數字視為錯誤號 (sysmessages)'KILL @@SPID'

實戰範例

  • 列出阻塞連線:EXEC sp_ListConnections 1
  • 列出 SQL Agent 連線:EXEC sp_ListConnections 0,0,NULL,NULL,'SQLAgent%',NULL,'A'
  • 列出 Northwind 所有活躍連線:EXEC sp_ListConnections 0,1,'Northwind',NULL,NULL,NULL,'D'
  • 新增自訂訊息:EXEC sp_addmessage 50001, 16, N'The server will be restarted in 10 minutes.'
  • 向所有連線發送訊息 50001:EXEC sp_ListConnections @PCTrain = '50001'
  • 向 Northwind 連線發送文字警告:EXEC sp_ListConnections 0,0,'Northwind',NULL,NULL,NULL,'D','The Northwind database will go offline in 10 minutes.'
  • 中斷 Northwind 所有連線:EXEC sp_ListConnections 0,0,'Northwind',NULL,NULL,NULL,'D','KILL @@SPID'

部署建議

  • 建立於 master 資料庫,前綴 sp_ 使全資料庫可直接呼叫。
  • Query Analyzer → [Tools] → [User Options] 設定鍵盤快捷鍵 (如 Ctrl+Shift+L) 快速呼叫。
  • 需啟用 Windows Messenger 服務 (伺服器與用戶端) 才能發送訊息。

總結

sp_ListConnections 將「查詢、過濾、通知、中斷」四大連線管理動作封裝為單一可程式化介面,極大提升 DBA 事件回應速度。建議納入標準維運工具箱並設定熱鍵。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved