Как получить подробный список подключений к базе данных в SQL Server 2005? - PullRequest
19 голосов
/ 11 января 2011

Как получить подробный список подключений к базе данных в sql server 2005?

Ответы [ 4 ]

29 голосов
/ 11 января 2011

Использовать системную хранимую процедуру sp_who2.

15 голосов
/ 09 апреля 2014

sp_who2 фактически предоставит список соединений для сервера базы данных , а не базы данных . Чтобы просмотреть соединения для одной базы данных (в данном примере YourDatabaseName), вы можете использовать

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'

(Адаптировано из SQL Server: Фильтр вывода sp_who2 .)

10 голосов
/ 01 октября 2014

Как отметил @Hutch, одно из основных ограничений sp_who2 заключается в том, что он не принимает никаких параметров, поэтому вы не можете сортировать или фильтровать его по умолчанию.Вы можете сохранить результаты во временную таблицу , но затем вам нужно заранее объявить все типы ( и запомнить DROP TABLE).

Вместо этого вы можете просто перейти непосредственно к источнику на master.dbo.sysprocesses

. Я сконструировал это так, чтобы выводить почти то же самое, что генерирует sp_who2, за исключением того, что вы можете легко добавлять ORDER BY и WHERE пункты, чтобы получить значимый вывод.

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 
5 голосов
/ 11 января 2011

Есть также , кто активен? :

Кто активен? является всеобъемлющим активность сервера на основе хранимых процедур на SQL Server 2005 и 2008 динамические представления управления (DMV). Считать это как sp_who2 на здоровенную дозу анаболические стероиды

...