En SQL Server, ¿hay una manera fácil de filtrar la salida de sp_who2? Digamos que solo quería mostrar filas para una determinada base de datos, por ejemplo.
sql-server
sql-server-2016
Craig Schwarze
fuente
fuente
Respuestas:
Podrías intentar algo como
Y filtre lo que necesita.
fuente
Usted podría guardar los resultados en una tabla temporal , pero sería aún mejor que ir directamente a la fuente de
master.dbo.sysprocesses
.Aquí hay una consulta que devolverá casi el mismo resultado que
sp_who2
:Ahora puede agregar fácilmente cualquiera
ORDER BY
o lasWHERE
cláusulas que desee para obtener resultados significativos.Alternativamente, podría considerar usar el Monitor de actividad en SSMS ( Ctrl+ Alt+ A) también
fuente
Una forma es crear una tabla temporal:
fuente
basado en http://web.archive.org/web/20080218124946/http://sqlserver2005.databases.aspfaq.com/how-do-i-mimic-sp-who2.html
he creado el siguiente script,
que resuelve la búsqueda conexiones activas a cualquier base de datos usando DMV, esto funciona bajo sql 2005, 2008 y 2008R2
El siguiente script usa sys.dm_exec_sessions , sys.dm_exec_requests , sys.dm_exec_connections , sys.dm_tran_locks
fuente
Ligera mejora a la respuesta de Astander . Me gusta poner mis criterios en primer lugar y hacer que sea más fácil reutilizarlos día a día:
fuente
Existen bastantes procedimientos almacenados por el usuario sp_who3: estoy seguro de que Adam Machanic hizo uno realmente bueno, AFAIK.
Adam lo llama Quién está activo: http://whoisactive.com
fuente
Similar a la respuesta de KyleMit , es posible seleccionar directamente las tablas utilizadas por SP_WHO2, aunque creo que solo necesita la tabla dbo.sysprocesses.
Si alguien abre este SP, puede entender lo que hace. Esta es mi mejor opción para tener una salida similar a SP_WHO2
Sobre esta selección, puede seleccionar los campos que necesita y tener el orden que desea.
fuente
Una forma realmente fácil de hacerlo es crear un enlace ODBC en EXCEL y ejecutar SP_WHO2 desde allí.
¡Puede actualizar cuando lo desee y porque es EXCEL, todo se puede manipular fácilmente!
fuente
Sí, capturando la salida de sp_who2 en una tabla y luego seleccionándola, pero esa sería una mala forma de hacerlo. Primero, porque sp_who2, a pesar de su popularidad, es un procedimiento indocumentado y no debe confiar en procedimientos indocumentados. Segundo, porque todo lo que puede hacer sp_who2, y mucho más, se puede obtener de sys.dm_exec_requests y otros DMV, y show se puede filtrar, ordenar, unir y todos los demás beneficios que vienen con conjuntos de filas queriables.
fuente
Extensión de la primera y mejor respuesta ... He creado un procedimiento almacenado en la base de datos maestra al que luego puede pasar parámetros ... como el nombre de la base de datos:
Podría extenderlo para agregar un orden por parámetro o incluso un paramatizador de muerte para que elimine todas las conexiones a un dato en particular
fuente
Esta es la solución para usted: http://blogs.technet.com/b/wardpond/archive/2005/08/01/the-openrowset-trick-accessing-stored-procedure-output-in-a-select-statement .aspx
fuente