查找 SQL Server 中 SQL 活動連接

一、概述
有多種方法可以找到 SQL Server 的活動 SQL 連接。本文分享一下幾種常見的方法。
二、解決方案
1、SP_WHO
SP_WHO 作為查找 SQL Server 上運行的活動 SQL 連接的方法。SP_WHO 將列出最少的列,但卻是列出活動連接的快速方法。特別是當SQL Server上有阻塞時,可以找到阻塞和被阻塞的進程。
sp_who
2、SP_WHO2
sp_who2SP_WHO還有一個高級版本,叫做SP_WHO2。它比 SP_WHO 有更多的列,如 CPUTime、DiskIO、ProgramName 等……這些列為我們提供了有關 SQL 連接性質的更多詳細信息。

3、SYS.SYSPROCESSES
查找活動 SQL 連接的另一個好方法是使用系統兼容性視圖 SYS.SYSPROCESSES。該視圖有很多列,其中包含大量信息,有助于您找出活動的 sql 連接,特別是當您想要查找阻塞的進程時。然而,這是向后兼容的一個視圖。因此,不要使用 SYS.SYSPROCESSES,建議使用我下面的介紹的系統視圖 SYS.DM_EXEC_SESSIONS。

4、SYS.DM_EXEC_SESSIONS
SYS.DM_EXEC_SESSIONS 是動態管理視圖之一,它取代了舊的系統表 sysprocesses。SYS.DM_EXEC_SESSIONS 的優點是它的列is_user_process。使用此列,您可以輕松過濾掉系統進程。
SELECT is_user_process, * FROM SYS.DM_EXEC_SESSIONS
/* To list down only the user processes */
SELECT * FROM SYS.DM_EXEC_SESSIONS where is_user_process = 1


















