2012-12-18 6 views
6

Ho un server SQL che sta raggiungendo il limite massimo di connessioni simultanee. Ho molti server diversi servizi & che si connettono a un server SQL allo stesso tempo.Come trovare il numero di connessioni simultanee di SQL Server

ho trovato un'altra query che sembra funzionare:

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; 

Tuttavia, questo mi dà il numero di connessioni che è buono. Come posso approfondire ulteriormente questo per trovare per vedere ogni connessione e che azione stanno facendo?

risposta

4

il comando sql "sp_who" che fornisce informazioni su utenti, sessioni e processi correnti in un'istanza del Motore di database Microsoft SQL Server (MSDN) Da qui, si dovrebbe essere in grado di inviare i risultati in una tabella temporanea e raggrupparli per nomeserver.

come la seguente ...

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

Ho trovato antoher interrogazione che sembra funzionare: – user1158745

+0

ho trovato antoher query che sembra funzionare: SELEZIONARE DB_NAME (dbid) come DBName, COUNT (dbid) come NumberOfConnections, loginame come LoginName, nt_domain come nT_Domain, nt_username come nT_UserName, nome host come HostName DA sys.sysprocesses DOVE dbid> 0 GROUP BY dbid, hostname, loginame, nt_domain, nt_username ORDER BY DESC NumberOfConnections ; Tuttavia, questo mi dà il numero di connessioni che è buono. Come posso approfondire ulteriormente questo per trovare per vedere ogni connessione e che azione stanno facendo? – user1158745

2

Stai parlando come controllare le connessioni che stanno raggiungendo l'istanza di SQL Server? Che ne dici di alcuni comandi DOS? prova a cercare la porta 1433 o il PID del tuo processo SQL Server.

netstat -nao | trovano "1433"

Per trovare il PID (identificatore di processo) che si sta cercando, basta andare al task manager e personalizzare visualizzare i processi, i dettagli della modalità qui: http://www.mydigitallife.info/how-to-get-and-view-process-identifier-process-id-or-pid-on-windows/

+1

bello !! ma no, non intende questo –