您的位置:首页 > 数据库 > Oracle

oracle 实时查询最耗CPU资源的SQL语句

2014-01-21 15:34 405 查看

oracle 实时查询最耗CPU资源的SQL语句

1. 先通过top命令查看产用资源较多的spid号

2.查询当前耗时的会话ID,用户名,sqlID等:

select sid,serial#,machine,username,program,sql_hash_value,sql_id,

to_char(logon_time,'yyyy/mm/dd hh24:mi:ss') as login_time from v$session

where paddr in (select addr from v$process where spid in ('5648612','256523'));

3. 如果上一步sql_id或者 hash_value不为空,则可用v$sqlarea查出当前正在使用的sql

select sql_text

from v$sqltext_with_newlines

where hash_value = &hash_value

order by piece;

select * from v$sql where sql_id=''

---CSDN 网友提供的----

SELECT sql_text

FROM v$sqltext a

WHERE (a.hash_value, a.address)
IN

(SELECT DECODE(sql_hash_value,
0, prev_hash_value, sql_hash_value),

DECODE(sql_hash_value, 0, prev_sql_addr, sql_address)

FROM v$session b

WHERE b.paddr
= (SELECT addr
FROM v$process c
WHERE c.spid
= '&pid'))

ORDER
BY piece ASC
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: