DBAtlas · データベース運用アトラス

セッション (SPID) を強制終了する

SQL Serverセッション

コマンド

-- 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;

概要

指定した session_id (SPID) を終了する。そのオープン中のトランザクションはロールバックされる。

使用する場面

ロックを保持している、暴走 / 長時間クエリを実行している、または接続を解放しないセッションを停止するため。

注意

大きなオープントランザクションでは、ロールバックに長時間かかり、キャンセルできない。進捗は KILL WITH STATUSONLY で監視する。システム SPID (is_user_process=0) を強制終了しない。正しい SPID であることを確認する。

DBAtlas で開く →

関連項目