背景:kill正在执行的慢SQL;
1、获取进程号,sql详情以及执行时长
SELECT b.sid sid,
b.serial#,
spid,
b.username username,
sql_text SQL_TEXT,
b.machine machine_name,
b.PREV_EXEC_START start_time,
ceil((to_date(to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss'),
'yyyy-mm-dd hh24:mi:ss') -
to_date(to_char(b.PREV_EXEC_START, 'yyyy-mm-dd hh24:mi:ss'),
'yyyy-mm-dd hh24:mi:ss')) * 24 * 60 * 60) durationtime
FROM v$process a, v$session b, v$sqlarea c
WHERE a.addr = b.paddr
AND b.sql_hash_value = c.hash_value
order by durationtime desc;
查询结果解释:
sid + serial# 唯一确定了一个session,user_name:执行查询的用户名;sql_text:正在执行的sql脚本;machine_name执行脚本的机器名称;start_time:脚本开始执行时间;durationtime:脚本执行持续时间;