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;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;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',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 1El 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]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.