SQL Server: вывод Фильтра sp_who2

Под SQL Server, там простой способ отфильтровать вывод sp_who2? Скажите, что я хотел просто показать строки для определенной базы данных, например.

185
задан Mitch Wheat 14 June 2017 в 16:22
поделиться

4 ответа

Вы можете попробовать что-нибудь вроде

DECLARE @Table 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 @Table EXEC sp_who2

SELECT  *
FROM    @Table
WHERE ....

И отфильтровать то, что вам нужно.

329
ответ дан 23 November 2019 в 05:52
поделиться

Один из способов - создать временную таблицу:

CREATE TABLE #sp_who2 
(
   SPID INT,  
   Status VARCHAR(1000) NULL,  
   Login SYSNAME NULL,  
   HostName SYSNAME NULL,  
   BlkBy SYSNAME NULL,  
   DBName SYSNAME NULL,  
   Command VARCHAR(1000) NULL,  
   CPUTime INT NULL,  
   DiskIO INT NULL,  
   LastBatch VARCHAR(1000) NULL,  
   ProgramName VARCHAR(1000) NULL,  
   SPID2 INT
) 
GO

INSERT INTO #sp_who2
EXEC sp_who2
GO

SELECT *
FROM #sp_who2
WHERE Login = 'bla'
GO

DROP TABLE #sp_who2
GO
23
ответ дан 23 November 2019 в 05:52
поделиться

Да, путем захвата вывода sp_who2 в таблицу и последующего выбора из таблицы, но это был бы плохой способ сделать это. Во-первых, потому что sp_who2, несмотря на свою популярность, является недокументированной процедурой, и вам не следует полагаться на недокументированные процедуры. Во-вторых, все функции sp_who2 и многое другое можно получить из sys.dm_exec_requests и других DMV, а show можно фильтровать, упорядочивать, объединять и все другие полезности, которые поставляются с запрашиваемыми наборами строк.

2
ответ дан 23 November 2019 в 05:52
поделиться

Существует довольно много хороших пользовательских хранимых процедур sp_who3 - я уверен, что Адам Мачаник сделал действительно хорошую, AFAIK.

Адам называет ее Who Is Active: http://whoisactive.com

4
ответ дан 23 November 2019 в 05:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: