2012-12-18 9 views
6

Mam serwer SQL, który osiąga maksymalny limit połączeń współbieżnych. Mam wiele różnych serwerów usług & łączących się z jednym serwerem SQL w tym samym czasie.Jak znaleźć liczbę równoczesnych połączeń SQL Server

znalazłem kolejne zapytanie, które wydaje się działać:

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; 

Jednak to daje mi liczbę połączeń, co jest dobre. Jak mogę dalej to przeglądać, aby znaleźć każde połączenie i jakie działania wykonują?

Odpowiedz

4

polecenie sql "sp_who", które dostarcza informacji o bieżących użytkownikach, sesjach i procesach w instancji aparatu bazy danych Microsoft SQL Server (MSDN) Z tego miejsca powinieneś móc wysłać wyniki do tabeli tymczasowej i pogrupuj je według nazwy serwera.

takich jak następujących ...

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

znalazłem antoher zapytanie który wydaje się działać: – user1158745

+0

znalazłem antoher zapytanie, które wydaje się działać: SELECT db_name (dbid) jako nazwa_bd, count (dbid) jako NumberOfConnections, loginame jako loginname, nt_domain jako nT_Domain, nt_username jako NT_UserName, nazwa hosta jako NazwaHosta OD sys.sysprocesses GDZIE dbid> 0 GROUP BY dbid, nazwa hosta, loginame, nt_domain, nt_username zamówienie przez NumberOfConnections DESC ; Jednak to daje mi liczbę połączeń, która jest dobra. Jak mogę dalej to przeglądać, aby znaleźć każde połączenie i jakie działania wykonują? – user1158745

2

Mówisz o tym, jak sprawdzić połączenia, które docierają do SQL Server wystąpienie? Co powiesz na niektóre polecenia DOS? spróbuj wyszukać port 1433 lub PID procesu SQL Server.

netstat -nao | znaleźć „1433”

Aby znaleźć PID (identyfikator procesu), który szukasz, po prostu przejdź do menedżera zadań i dostosować zobaczyć procesy, szczegóły trybu tutaj: http://www.mydigitallife.info/how-to-get-and-view-process-identifier-process-id-or-pid-on-windows/

+1

nice !! ale nie, nie ma tego na myśli –