¿Qué Usuarios Están Conectados A Una Base De Datos SQL Server?

En nuestro trabajo diario como DBAs o administrando alguna infraestructura de base de datos, siempre es de vital importancia saber qué usuarios están conectados a la instancia o a una base de datos específica, ya sea para diagnosticar algún problema o determinar el grado de uso de la misma. En SQL Server hay un método sencillo de averiguar esto.

Para ver cómo funciona, basta abrir una ventana de consulta y ejecutar el comando SP_WHO2.

SP_WHO2

Este Procedimiento Almacenado (o Stored Procedure) nos listará todos los procesos actuales corriendo en la base de datos. Entre la información que nos da este comando, vemos lo siguiente:

  • SPID: Identificador de sesión
  • Status: Estado actual de la sesión. Puede tener los valores:
    • BACKGROUND: Para servicios internos de SQL Server
    • PENDING: La sesión está abierta pero esperando un thread disponible para ejecutarse
    • RUNNABLE: Si es una sesión abierta y tiene asignado un thread pero no ciclos de CPU
    • RUNNING: Para una sesión que está ejecutando un proceso o consulta ahora
    • SLEEPING: Si es una sesión abierta pero no está ejecutando nada actualmente
    • SUSPENDED: La sesión está abierta a la espera de que se libere un recurso (I/O, CPU) para seguir ejecutándose, o empezar a hacerlo.
  • Login: Nombre del usuario conectado a la base de datos
  • Hostname: Nombre del servidor/workstation desde donde el Login está ejecutando la consulta
  • BlkBy: Indica si la sesión en mención está bloqueada. Si es así, nos mostrará un número, que es el SPID de la sesión que está causando el bloqueo.
  • DBName: Nombre de la base de datos a la cual está conectado el Login
  • Command: Tipo de comando que está ejecutando el Login
  • ProgramName: Nombre del programa desde el cual el Login está ejecutando la consulta

Como podemos ver, este poderoso comando también nos puede ayudar a verificar si existen bloqueos en la base de datos, por lo que es uno de los comandos más usados a la hora de diagnosticar problemas de rendimiento.

Es esta la única forma?

Si bien hay otros comandos personalizados que pueden darnos más flexibilidad o información más detallada, he creído conveniente recomendar este (junto con el SP_WHO, para situaciones donde la base de datos está tan saturada que no es posible ejecutar el SP_WHO2) porque ambos son procedimientos nativos de SQL Server y no requieren de la creación de ningún procedimiento almacenado para su uso.

En otro artículo estaré cubriendo este otro tipo de comandos que nos ayudarán a visualizar la actividad de nuestra instancia de base de datos previa creación de sus stored procedures, a la par de cuáles son los más usados por DBAs y consultores 😉.

Si tienes alguna duda, comentario o sugerencia, puedes mandarme un email a bitácoradeundba@gmail.com.

Deja un comentario