查找 SQL Server 中活动的 SQL 连接

一、概述

有多种方法可以找到 SQL Server 的活动 SQL 连接。本文分享一下几种常见的方法。

二、解决方案

2.1 SP_WHO

SP_WHO 作为查找 SQL Server 上运行的活动 SQL 连接的方法。SP_WHO 将具有最少的列,但却是列出活动连接的快速方法。特别是当SQL Server上有阻塞时,可以找到阻塞和被阻塞的进程。

sp_who

  

 

2.2 SP_WHO2

sp_who2

SP_WHO还有一个高级版本,叫做SP_WHO2。它比 SP_WHO 有更多的列,如 CPUTime、DiskIO、ProgramName 等……这些列为我们提供了有关 SQL 连接性质的更多详细信息。

 

2.3 SYS.SYSPROCESSES

查找活动 SQL 连接的另一个好方法是使用系统兼容性视图 SYS.SYSPROCESSES。该视图有很多列,其中包含大量信息,有助于您找出活动的 sql 连接,特别是当您想要查找阻塞的进程时。然而,这是向后兼容的观点。因此,不要使用 SYS.SYSPROCESSES,而是使用我在下面解释的系统视图 SYS.DM_EXEC_SESSIONS。

2.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

  

结论

现在,我使用 SYS.DM_EXEC_SESSIONS 来查找活动 SQL 连接的列表。

参考

https://www.mytecbits.com/microsoft/sql-server/active-sql-connections

posted @ 2023-07-29 13:44  雪竹子  阅读(134)  评论(0编辑  收藏  举报