ITPub博客

首页 > 数据库 > Oracle > 实时查询最耗CPU资源的SQL语句

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

原创 Oracle 作者:we6100 时间:2015-10-30 11:49:27 0 删除 编辑

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 ='ID');
3. 如果上一步sql_id或者 hash_value不为空,则可用v$sqlarea查出当前正在使用的sql
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;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27500440/viewspace-1818986/,如需转载,请注明出处,否则将追究法律责任。

下一篇: 软解析和硬解析
请登录后发表评论 登录
全部评论

注册时间:2014-02-23

  • 博文量
    72
  • 访问量
    268544