SP_WHO

SP_WHO 是 SQL Server 内置的系统存储过程, 其他方法相比,SP_WHO 将具有最少的列,但是一种快速列出活动连接的方法。

以下是在 SQL Server Management Studio 中的执行示例:

EXEC SP_WHO

在 SQL Server 中查找活动的 SQL 连接-LMLPHP

具体的字段解释请参阅官方文档 SP_WHO
其中比较重要的列是:

  • spid: 会话ID
  • loginname: 登录账号
  • blk: 阻塞进程的会话ID(如果存在)。否则,此列为零, 可以使用该列排查死锁

SYS.SYSPROCESSES

另一种查找活动 SQL 连接的绝妙方法是使用系统兼容性视图 SYS.SYSPROCESSES
此视图有很多列,其中包含很多信息,这些信息有助于您找出活动的 sql 连接,尤其是当您想要查找被阻塞的进程时。但是,这是向后兼容的视图,不建议使用,因为未来的版本可能会删除它

以下是在 SQL Server Management Studio 中的执行示例:

SELECT * FROM SYS.SYSPROCESSES

在 SQL Server 中查找活动的 SQL 连接-LMLPHP

具体的字段解释请参阅官方文档 SYS.SYSPROCESSES

SYS.DM_EXEC_SESSIONS (建议使用)

SYS.DM_EXEC_SESSIONS 是替代旧系统表 sysprocesses 的动态管理视图之一。SYS.DM_EXEC_SESSIONS 的优点是它的列 is_user_process 。使用此列,您可以轻松过滤掉系统进程。

以下是在 SQL Server Management Studio 中的执行示例:

SELECT * FROM SYS.DM_EXEC_SESSIONS where is_user_process = 1

在 SQL Server 中查找活动的 SQL 连接-LMLPHP

具体的字段解释请参阅官方文档 SYS.DM_EXEC_SESSIONS

07-15 17:51