2012-12-18 29 views
6

同時接続の最大限度に達しているSQL Serverがあります。私は多くの異なるサーバー&サービスを同時に1つのSQL Serverに接続しています。同時SQLサーバー接続の数を確認する方法

私が働くようで別のクエリを見つけた:

SELECT DB_NAME(dbid) AS DBName, 
     COUNT(dbid) AS NumberOfConnections, 
     loginame  AS LoginName, 
     nt_domain  AS NT_Domain, 
     nt_username AS NT_UserName, 
     hostname  AS HostName 
FROM sys.sysprocesses 
WHERE dbid > 0 
GROUP BY dbid, 
      hostname, 
      loginame, 
      nt_domain, 
      nt_username 
ORDER BY NumberOfConnections DESC; 

しかし、これは私に良いです接続の数を示します。どのように私はさらにこれを掘り下げて、それぞれの接続と彼らが何をしているのかを見ることができますか?

答えて

4

Microsoft SQL Serverデータベースエンジン(MSDN)のインスタンス内の現在のユーザー、セッション、およびプロセスに関する情報を提供するSQLコマンド "sp_who"ここから、一時テーブルに結果を送信することができます。それらをservernameでグループ化します。次のような

...あなたはあなたのSQL Serverインスタンスに到達している接続を確認する方法について

CREATE TABLE #tbl (
     spid  int 
    , ecid  int 
    , status varchar(50) 
    , loginame varchar(255) 
    , hostname varchar(255) 
    , blk  varchar(50) 
    , dbname varchar(255) 
    , cmd  varchar(255) 
    , request_id varchar(255) 
    ) 
GO 

INSERT INTO #tbl EXEC sp_who 

SELECT COUNT(0), hostname FROM #tbl group by hostname 

DROP TABLE #tbl 
GO 
+0

私はantoherクエリを見つけましたそれが動作しているようです: – user1158745

+0

私は動作するようですantoherクエリを見つけた: DBNAMEとして DB_NAME(DBID)を選択し、 COUNT(DBID)nT_UserName、 としてnT_Domain、 nt_usernameとしてLoginNameに、 nt_domainとしてNumberOfConnections、 loginameのようホスト名as sys.sysprocesses DBID、ホスト名、loginameに、nt_domain、NumberOfConnections DESC によってnt_username順序によって DBID> 0 群からホスト名 。 しかし、これは良い接続の数を私に与える。どのように私はさらにこれを掘り下げて、それぞれの接続と彼らが何をしているのかを見ることができますか? – user1158745

2

を話していますか? DOSコマンドはどうですか?ポート1433またはSQL ServerプロセスのPIDを検索してみてください。

netstat -nao |ここでは、モードの詳細を表示するだけで、あなたのタスクマネージャに移動し、プロセスをカスタマイズし、あなたが探しているPID(プロセスID)を検索するには「1433」

を見つける: http://www.mydigitallife.info/how-to-get-and-view-process-identifier-process-id-or-pid-on-windows/

+1

nice !!しかし、いいえ、彼はこれを意味しません –