Tempo fa ho avuto la necessità di verificare lo stato delle connessioni effettuate su MS-SQL e grazie alla stored di sistema sp_who2 ho potuto cercare ciò che mi interessava, però mi sono trovato nella situazione scomoda di cercare fra tutte le connessioni e quando le connessioni iniziano ad essere tante la ricerca non è molto veloce. Cosi ho pensato di vedere il codice della stored procedure di sistema sp_who2 per estrarlo e modificarlo ma purtroppo non avevo un'utenza di amministrazione. Così per risolvere questo problema ho creato questa query Transact-SQL che permette una gestione più utile della stored procedure sp_who2, infatti adesso è possibile filtrare e ordinare il risultato cambiando la condizione e l'ordinamento alla select fatta sulla tabella temporanea #WHO2.
-- Questa interrogazione mostra tutte le connessioni
-- che hanno delle interrogazioni in esecuzione
CREATE TABLE #WHO2(
SPID INT,
Status VARCHAR(50),
Login VARCHAR(100),
HostName VARCHAR(255),
BlkBy VARCHAR(100),
DBName VARCHAR(100),
Command VARCHAR(100),
CPUTime FLOAT,
DiskIO FLOAT,
LastBatch VARCHAR(50),
ProgramName VARCHAR(255),
SPID2 INT
-- PER SQL SERVER 2005 SCOMMENTARE LA RIGA SOTTOSTANTE
--,RequestID INT
)
INSERT INTO #WHO2 EXEC sp_who2
SELECT * FROM #WHO2
--WHERE STATUS ='RUNNABLE'
ORDER BY LOGIN
DROP TABLE #WHO2