我使用SQL Server 2008企业。我想看到任何活动的SQL Server连接,以及所有连接的相关信息,比如从哪个IP地址,连接到哪个数据库或其他东西。
是否存在解决此问题的现有命令?
我使用SQL Server 2008企业。我想看到任何活动的SQL Server连接,以及所有连接的相关信息,比如从哪个IP地址,连接到哪个数据库或其他东西。
是否存在解决此问题的现有命令?
当前回答
单击工具栏中的“活动监视器”图标。
从Thorsten的评论来看:
在SQL Server Management Studio中,右键单击服务器,从上下文菜单中选择“活动监视器”-或-使用键盘快捷键Ctrl + Alt + A。
参考资料:Microsoft Docs - SQL Server Management Studio (SSMS)中的Open Activity Monitor
其他回答
除了sp_who之外,还可以使用“无文档记录的”sp_who2系统存储过程,它可以提供更详细的信息。参见sp_who和sp_who2的区别。
您可以使用sp_who存储过程。
在Microsoft SQL Server数据库引擎实例中提供有关当前用户、会话和进程的信息。可以对信息进行筛选,以只返回那些不空闲的进程、属于特定用户的进程或属于特定会话的进程。
单击工具栏中的“活动监视器”图标。
从Thorsten的评论来看:
在SQL Server Management Studio中,右键单击服务器,从上下文菜单中选择“活动监视器”-或-使用键盘快捷键Ctrl + Alt + A。
参考资料:Microsoft Docs - SQL Server Management Studio (SSMS)中的Open Activity Monitor
执行的T-SQL命令如下:
SELECT * FROM sys.dm_exec_sessions WHERE status = 'running';
SELECT
DB_NAME(dbid) as DBName,
COUNT(dbid) as NumberOfConnections,
loginame as LoginName
FROM
sys.sysprocesses
WHERE
dbid > 0
GROUP BY
dbid, loginame
;
请参见Microsoft文档中的sys.sysprocesses。