如何查看正在执行指定sqlid的sql的执行时间

最近在优化sql,发现有个sql_id对应的sql的IO读取量非常的大,就想知道,每次有多少此类sql在执行,执行时间是多少,具体可以通过如下sql来查询

 

select 
sid,
v$session.username 用户名
,last_call_et 持续时间,
status 状态,
LOCKWAIT 等待锁,
machine 用户电脑名,
logon_time 开始登入时间,
sql_text 
from 
v$session ,v$process ,v$sqlarea
  
where paddr=addr and sql_hashvalue=hash_value

  and status='ACTIVE' and v$session.username is not null

 AND V$SESSION.SQL_ID='{sqlid}'
  order by last_call_et desc

 

将其中的{sqlid}换成你自己的sqlid即可

 

如果

AND V$SESSION.SQL_ID='{sqlid}'

取消,则查询全部在执行sqlid的情况

你可能感兴趣的:(Oracle,SQL)