查找 SQL Server 中 SQL 活動連接
一、概述
有多種方法可以找到 SQL Server 的活動 SQL 連接。本文分享一下幾種常見的方法。
二、解決方案
1、SP_WHO
SP_WHO 作為查找 SQL Server 上運行的活動 SQL 連接的方法。SP_WHO 將列出最少的列,但卻是列出活動連接的快速方法。特別是當(dāng)SQL Server上有阻塞時,可以找到阻塞和被阻塞的進(jìn)程。
sp_who
2、SP_WHO2
sp_who2
SP_WHO還有一個高級版本,叫做SP_WHO2。它比 SP_WHO 有更多的列,如 CPUTime、DiskIO、ProgramName 等……這些列為我們提供了有關(guān) SQL 連接性質(zhì)的更多詳細(xì)信息。
3、SYS.SYSPROCESSES
查找活動 SQL 連接的另一個好方法是使用系統(tǒng)兼容性視圖 SYS.SYSPROCESSES。該視圖有很多列,其中包含大量信息,有助于您找出活動的 sql 連接,特別是當(dāng)您想要查找阻塞的進(jìn)程時。然而,這是向后兼容的一個視圖。因此,不要使用 SYS.SYSPROCESSES,建議使用我下面的介紹的系統(tǒng)視圖 SYS.DM_EXEC_SESSIONS。
4、SYS.DM_EXEC_SESSIONS
SYS.DM_EXEC_SESSIONS 是動態(tài)管理視圖之一,它取代了舊的系統(tǒng)表 sysprocesses。SYS.DM_EXEC_SESSIONS 的優(yōu)點是它的列is_user_process。使用此列,您可以輕松過濾掉系統(tǒng)進(jìn)程。
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