セッションを終了(kill session)
Oracleセッションとプロセスコマンド
-- First find the session to kill:
SELECT sid, serial#, username, status, machine, program
FROM v$session
WHERE username = 'CUSTOMER_APP' AND status = 'ACTIVE';
-- Kill it (starts rollback immediately):
ALTER SYSTEM KILL SESSION '145,12345' IMMEDIATE;
-- If it hangs, the OS process can be terminated:
-- ALTER SYSTEM DISCONNECT SESSION '145,12345' IMMEDIATE;概要
指定した SID,SERIAL# のセッションを終了する。オープン中のトランザクションはロールバックされる。
使用する場面
ロックを保持している、暴走クエリを実行している、または接続をリークしているセッションを止めるため。
注意
オープン中のトランザクションがある場合、ロールバックに長時間かかることがある(作業量が少なければすぐに終わる)。誤った SID を終了しないよう、先にクエリで確認する。大規模な DML のロールバックは I/O 負荷を生む。