How to see active connections for each Database in SQL Server 2005

At times, we need to check the number of active connections for each Database on our server. This can be done easily using the following script. The script displays the DatabaseName, the number of connections and the login name :

SELECT db_name(dbid) as DatabaseName, count(dbid) as NoOfConnections,
loginame as LoginName
FROM sys.sysprocesses
WHERE dbid > 0
GROUP BY dbid, loginame

22 comments:

  1. Works very well. Thanks.

    ReplyDelete
  2. wThanks very much - worked for me
    -Neil

    ReplyDelete
  3. Works for SQL 2005 SP2 - Just copy and execute in a new query. Thanx

    ReplyDelete
  4. Thanks, it is useful

    ReplyDelete
  5. very very useful thanks a lot

    ReplyDelete
  6. what should I write to SQL (8) 2000? I get "Invalid object name 'sys.sysprocesses'."

    ReplyDelete
  7. Shalom!
    For SQL Server 2000, change sys.sysprocesses to sysprocesses
    hth
    Jack

    ReplyDelete
  8. Great Query! Thanks very much!

    ReplyDelete
  9. Nice one - thanks!

    ReplyDelete
  10. Very helpful. Thank you!

    -Joe, Portsmouth, NH

    ReplyDelete
  11. Great Script.
    Thanks for your work.

    ReplyDelete
  12. Should I have any special permissions or role to perform this query? I'm always seing only one active connection, I gues it's the current connection...

    ReplyDelete
  13. Yes you must have VIEW SERVER STATE permission on the server to see all executing sessions in the instance of SQL Server, otherwise you will see only the current session

    On a side note, if you are using SQL 2005 and higher, use equivalent DMV's. Search google or SQL documentation for

    sys.dm_exec_connections
    sys.dm_exec_sessions
    sys.dm_exec_requests

    ReplyDelete
  14. Great post! I get error maximum sqlconnection pool and i had to restart application. how can i fix that?

    ReplyDelete
  15. Is it okay to install SP4 on SQL 2005 with active connections on it?

    ReplyDelete