web-dev-qa-db-fra.com

Comment obtenir la liste détaillée des connexions à la base de données dans SQL Server 2005?

Comment obtenir la liste détaillée des connexions à la base de données dans SQL Server 2005?

19
x2.

Utilisez la procédure stockée système sp_who2.

29
Brian Ball

sp_who2 fournira en fait une liste de connexions pour le serveur de base de données , pas une base de données . Pour afficher les connexions d'une seule base de données (YourDatabaseName dans cet exemple), vous pouvez utiliser

DECLARE @AllConnections TABLE(
    SPID INT,
    Status VARCHAR(MAX),
    LOGIN VARCHAR(MAX),
    HostName VARCHAR(MAX),
    BlkBy VARCHAR(MAX),
    DBName VARCHAR(MAX),
    Command VARCHAR(MAX),
    CPUTime INT,
    DiskIO INT,
    LastBatch VARCHAR(MAX),
    ProgramName VARCHAR(MAX),
    SPID_1 INT,
    REQUESTID INT
)

INSERT INTO @AllConnections EXEC sp_who2

SELECT * FROM @AllConnections WHERE DBName = 'YourDatabaseName'

(Adapté de SQL Server: Filtrez la sortie de sp_who2 .)

15
Hutch

Comme l'a souligné @Hutch, l'une des principales limites de sp_who2 est qu'il ne prend aucun paramètre, vous ne pouvez donc pas le trier ou le filtrer par défaut. Vous pouvez enregistrer les résultats dans une table temporaire , mais ensuite vous devez déclarer tous les types à l'avance ( et n'oubliez pas de DROP TABLE).

Au lieu de cela, vous pouvez simplement aller directement à la source sur master.dbo.sysprocesses

J'ai construit cela pour produire presque exactement la même chose que sp_who2 génère, sauf que vous pouvez facilement ajouter ORDER BY et WHERE clauses pour obtenir une sortie significative.

SELECT  spid,
        sp.[status],
        loginame [Login],
        hostname, 
        blocked BlkBy,
        sd.name DBName, 
        cmd Command,
        cpu CPUTime,
        physical_io DiskIO,
        last_batch LastBatch,
        [program_name] ProgramName   
FROM master.dbo.sysprocesses sp 
JOIN master.dbo.sysdatabases sd ON sp.dbid = sd.dbid
ORDER BY spid 
10
KyleMit

Il y a aussi qui est actif? :

Qui est actif? est une procédure stockée complète d'activité de serveur basée sur les vues de gestion dynamique (DMV) SQL Server 2005 et 2008. Pensez-y comme sp_who2 sur une forte dose de stéroïdes anabolisants

5
Mitch Wheat