DBAtlas · Atlas d'exploitation des bases de données

Tuer une session (SPID)

SQL ServerSession

Commande

-- First find the offending SPID:
SELECT s.session_id, s.login_name, s.host_name, s.program_name,
       r.status, r.command, r.wait_type, r.blocking_session_id,
       DB_NAME(r.database_id) AS db
FROM   sys.dm_exec_sessions s
  LEFT JOIN sys.dm_exec_requests r ON r.session_id = s.session_id
WHERE  s.is_user_process = 1;

-- Kill (example SPID 63):
KILL 63;

-- Show rollback progress:
KILL 63 WITH STATUSONLY;

Ce que fait la commande

Termine le session_id (SPID) indiqué ; sa transaction ouverte est annulée.

Quand l'utiliser

Pour arrêter une session qui détient des verrous, exécute une requête incontrôlée/longue ou ne libère pas sa connexion.

Attention

Sur une grosse transaction ouverte, le rollback peut durer longtemps et ne peut pas être annulé ; suivez la progression avec KILL WITH STATUSONLY. Ne tuez pas les SPID système (is_user_process=0). Vérifiez qu'il s'agit du bon SPID.

Ouvrir dans DBAtlas →

Voir aussi