oracle 杀掉正在“执行”的SQL

1、 找到正在执行的 SQL,或者造成等待事件的SQL 的 sid 和 serial#,通过这两个值确定一个 session

    SELECT b.username 用户名,
           b.sid,     session_id
           b.serial#, 串口号
           spid       操作系统ID,
           paddr,     session对应的进程地址,
           sql_text   正在执行的SQL,
           b.machine  主机名
      FROM v$process a, v$session b, v$sqlarea c
     WHERE a.addr = b.paddr
       AND b.sql_hash_value = c.hash_value

2、 杀死该会话

    alter system kill session 'sid,SERIAL#';  

–===========================================================================

oracle 等待事件 SQL 查询

    select ash.USER_ID,
    u.username,
        sum(ash.WAIT_TIME) ttl_wait_time,
        s.SQL_TEXT
      from v$active_session_history ash, v$sqlarea s, dba_users u
     where ash.SAMPLE_TIME between sysdate - 60 / 2880 and sysdate
       and ash.SQL_ID = s.SQL_ID
       and ash.USER_ID = u.user_id
     group by ash.USER_ID, s.SQL_TEXT, u.username
     order by ttl_wait_time desc;
     ```

你可能感兴趣的:(oracle,oracle,sql,数据库)