No SQL Server, existe uma maneira fácil de filtrar a saída de sp_who2? Digamos que eu queira apenas mostrar linhas para um determinado banco de dados, por exemplo.
sql-server
sql-server-2016
Craig Schwarze
fonte
fonte
Respostas:
Você poderia tentar algo como
E filtre o que você precisa.
fonte
Você pode salvar os resultados em uma tabela temporária , mas seria ainda melhor ir diretamente à fonte em
master.dbo.sysprocesses
.Aqui está uma consulta que retornará quase exatamente o mesmo resultado que
sp_who2
:Agora você pode adicionar facilmente qualquer cláusula
ORDER BY
ouWHERE
que desejar para obter uma saída significativa.Como alternativa, você também pode considerar o uso do Activity Monitor no SSMS ( Ctrl+ Alt+ A)
fonte
Uma maneira é criar uma tabela temporária:
fonte
com base em http://web.archive.org/web/20080218124946/http://sqlserver2005.databases.aspfaq.com/how-do-i-mimic-sp-who2.html
eu criei o seguinte script,
que resolve encontrar conexões ativas a qualquer banco de dados usando DMV, isso funciona no sql 2005, 2008 e 2008R2
O script a seguir usa sys.dm_exec_sessions , sys.dm_exec_requests , sys.dm_exec_connections , sys.dm_tran_locks
fonte
Ligeira melhoria na resposta de Astander . Eu gosto de colocar meus critérios no topo e facilitar a reutilização no dia a dia:
fonte
Existem alguns procedimentos armazenados sp_who3 bons por aí - tenho certeza de que Adam Machanic fez realmente um bom, o AFAIK.
Adam o chama de Quem está ativo: http://whoisactive.com
fonte
Semelhante à resposta do KyleMit , é possível selecionar diretamente as tabelas usadas pelo SP_WHO2, embora eu ache que seja necessário apenas a tabela dbo.sysprocesses.
Se alguém abrir esse SP, ele poderá entender o que faz. Esta é a minha melhor opção para ter uma saída semelhante à SP_WHO2
Sobre essa seleção, você pode selecionar os campos necessários e ter a ordem desejada.
fonte
Uma maneira realmente fácil de fazer isso é criar um link ODBC no EXCEL e executar o SP_WHO2 a partir daí.
Você pode atualizar sempre que quiser e, porque é EXCEL, tudo pode ser manipulado facilmente!
fonte
Sim, capturando a saída de sp_who2 em uma tabela e selecionando a partir da tabela, mas seria uma maneira ruim de fazer isso. Primeiro, porque sp_who2, apesar de sua popularidade, é um procedimento não documentado e você não deve confiar em procedimentos não documentados. Segundo, porque todo o sp_who2 pode fazer, e muito mais, pode ser obtido em sys.dm_exec_requests e outros DMVs, e o show pode ser filtrado, ordenado, unido e todos os outros itens fornecidos com conjuntos de linhas consultáveis.
fonte
Extensão da primeira e melhor resposta ... Eu criei um procedimento armazenado no banco de dados mestre para o qual você pode passar parâmetros para .. como o nome do banco de dados:
Eu poderia estendê-lo para adicionar uma ordem por parâmetro ou mesmo um paramatmer kill, para matar todas as conexões com dados específicos
fonte
Esta é a solução para você: http://blogs.technet.com/b/wardpond/archive/2005/08/01/the-openrowset-trick-accessing-stored-procedure-output-in-a-select-statement .aspx
fonte