SQL Server Kill Spid

SQL Server Kill Spid
La ID de proceso SPID o SQL Server es un valor único asignado a una sesión cuando se conecta a una instancia de SQL Server. Por ejemplo, si utiliza una herramienta como JetBrains Data Grip para conectarse al servidor SQL, el servidor SQL asigna una ID de sesión única que contiene espacio de memoria y alcance independientes. Esto significa que la SPID no puede interactuar con otras SPID en el servidor.

SQL Server utiliza valores SPID por debajo de 50 para procesos de servidor interno, mientras que cualquier SPID por encima de 51 (inclusive) valor se asigna a los procesos del usuario.

En esta guía, comprenderá cómo obtener valores de SPID en SQL Server y cómo puede matar una transacción usando su SPID.

SQL Server Show Spid

En SQL Server, hay varias formas de obtener la SPID de los procesos de ejecución. Esta guía verá lo más común y fácil de usar.

sp_who (Transact-SQL)

El SP_WHO es un procedimiento auxiliar que le permite ver la información del usuario, las sesiones y los procesos de instancia de SQL Server. Usando este procedimiento, puede filtrar para obtener información específica, como el nombre de usuario y el valor SPID.

La sintaxis es como se muestra:

sp_who [[@loginame =] 'Iniciar sesión' | ID de sesión | 'ACTIVO' ]

El inicio de sesión se refiere al Sysname que identifica un proceso para un inicio de sesión específico.

El ID de sesión es el valor de SPID a un proceso específico conectado al servidor SQL.

Uso de ejemplo

Los siguientes comandos muestran cómo usar el procedimiento SP_WHO en SQL Server.

Mostrar todos los procesos actuales

Para mostrar todos los procesos actuales, use la consulta como se muestra:

Usar maestro;
IR
EXEC SP_WHO;
IR

La consulta anterior debe devolver la información con columnas como SPID, ECID, estado, nombre de sesión de inicio y más.

Mostrar proceso para un usuario específico

Para obtener los procesos asociados con un usuario específico, podemos especificar el nombre de usuario en la consulta como se muestra en el siguiente ejemplo:

Usar maestro;
IR
Ejecut sp_who 'csalem \ cs';
IR

El comando debe devolver la información del proceso sobre el inicio de sesión establecido. Una salida de ejemplo es como se muestra:

@@ Spid

Otro método que puede usar para obtener la spid de un proceso es usar la función @@ Spid. Esta función de configuración devuelve el ID de sesión del proceso actual.

Uso de ejemplo

El siguiente ejemplo muestra cómo usar @@ Spid para obtener información sobre un proceso específico.

Seleccione @@ Spid como 'ID',
system_user como 'login_name',
Usuario como 'nombre de usuario'

La consulta devuelve el Spid, Loginame y el nombre de usuario. El ejemplo de salida es como se muestra:

Monitor de actividades

También puede usar un método gráfico para ver el valor de ID de sesión para un proceso específico. Inicie el estudio de administración de MS SQL Server y haga clic con el botón derecho en la instancia de SQL Server. Monitor de actividad abierta.

Haga clic en la pestaña Proceso para mostrar SPID, inicio de sesión, bases de datos y más información. La información que muestra el monitor de actividades es como se muestra:

SQL Server Kill Spid

A veces, puede encontrar una instancia específica que se ejecuta lenta, bloqueando otros procesos o consumir recursos del sistema. Puede finalizar el proceso utilizando su spid.

El comando kill spid le permite especificar un valor de spid de usuario específico y terminar el proceso. Una vez que llame al comando, el servidor SQL ejecutará un proceso de reversión (deshacer cambios); por lo tanto, puede tomar algún tiempo finalizar un proceso extenso.

Lo siguiente muestra la sintaxis del comando Kill Spid:

Kill ID de sesión [con Statusonly] | Uow [con statusonly | Cometer | RETROCEDER ]

Uso de ejemplo

Pase el valor de identificación de la sesión para usar el comando kill spid (aprenda cómo obtener el valor de spid anterior).

Matar 90;

El comando anterior debe detener el proceso especificado.

Para obtener el progreso de la terminación del proceso, puede usar el argumento con StatySonly como se muestra:

Mata a 84 con estatuto;

El comando anterior debe devolver el progreso como:

MSG 6120, Nivel 16, Estado 1, línea 1
El informe de estado no se puede obtener. La operación de reversión para el ID de proceso 84 no está en progreso.

El siguiente ejemplo le muestra cómo terminar una copia de seguridad de la base de datos en ejecución utilizando el comando kill spid.

Comience la copia de seguridad como:

Base de datos de copia de seguridad [WideWorldImporters]
A disk = n'c: \ archivos de programa \ Microsoft SQL Server \ MSSQL15.Mssqlserver \ mssql \ backup \ wwi_backup.bak '
Con noFormat, name = n '\ wwi_backup', compresión, stats = 10;
IR

Usando el comando kill spid, finalice el proceso de copia de seguridad.

Conclusión

En este artículo, aprendió a trabajar con ID de sesión de SQL Server. Varios métodos para obtener el valor de la SPID y finalizar un proceso utilizando el valor SPID.