7

同時接続の最大制限に達している SQL Server があります。1 つの SQL Server に同時に多数の異なるサーバーとサービスを接続しています。

うまくいくと思われる別のクエリを見つけました:

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

2 に答える 2

4

Microsoft SQL Server データベース エンジン ( MSDN )のインスタンスで現在のユーザー、セッション、およびプロセスに関する情報を提供する SQL コマンド "sp_who"ここから、結果を一時テーブルに送信し、サーバー名でグループ化できるはずです。 .

次のような...

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
于 2012-12-18T20:49:56.463 に答える
2

SQL Server インスタンスに到達している接続を確認する方法について話しているのですか? DOS コマンドはどうですか?ポート 1433 または SQL Server プロセスの PID を検索してみてください。

netstat -nao | 「1433」を見つける

探している PID (プロセス識別子) を見つけるには、タスク マネージャーに移動し、プロセス ビューをカスタマイズします。モードの詳細はこちら: http://www.mydigitallife.info/how-to-get-and-view-プロセス識別子プロセス ID または pid-on-windows/

于 2012-12-18T20:53:49.933 に答える