中止 sqlplus 中运行的语句

问题

在 sqlplus 中运行了一条非常耗资源的语句,CPU 占用率高,语句迟迟不输出结果。这个时候关掉 sqlplus 是没用的,语句还会在 session 里跑。

解决方案

  1. 找到运行这条语句的 session。
select x.sid
      ,x.serial#
      ,x.username
      ,x.sql_id
      ,x.sql_child_number
      ,optimizer_mode
      ,hash_value
      ,address
      ,sql_text
from   v$sqlarea sqlarea
      ,v$session x
where  x.sql_hash_value = sqlarea.hash_value
and    x.sql_address    = sqlarea.address
and    x.username       is not null;
  1. kill 掉这个 session。
alter system kill session 'sid,serial#';

你可能感兴趣的:(中止 sqlplus 中运行的语句)