select *
from (select a.sid,
a.sql_id,
a.status,
a.cpu_time / 1000000,
a.buffer_gets,
a.DISK_READS,
b.SQL_TEXT
from v$sql_monitor a, v$sql b
where a.SQL_ID = b.SQL_ID
order by a.CPU_TIME desc)
from (select a.sid,
a.sql_id,
a.status,
a.cpu_time / 1000000,
a.buffer_gets,
a.DISK_READS,
b.SQL_TEXT
from v$sql_monitor a, v$sql b
where a.SQL_ID = b.SQL_ID
order by a.CPU_TIME desc)
where rownum <= 20;
v$sql是实时统计数据,可以定位消耗资源的sql
select a.USERNAME,
a.OPNAME,
b.SQL_TEXT,
to_char(a.START_TIME, 'DD-MON-YY HH24:MI'),
a.ELAPSED_SECONDS,
a.TIME_REMAINING,
a.SOFAR,
round(a.SOFAR / a.TOTALWORK * 100, 2)
from v$session_longops a, v$sql b
where a.SQL_ADDRESS = b.ADDRESS
and a.SQL_HASH_VALUE = b.HASH_VALUE
and a.SOFAR <> a.TOTALWORK
and a.TOTALWORK != 0;
查看消耗cpu的操作系统进程
ps -e -o pcpu,pid,user,tty,args|sort -n -k 1 -r |head
本文详细介绍了如何使用SQL监控工具分析CPU消耗高的SQL语句,并提供了优化建议。同时,通过查询操作系统进程来进一步诊断资源瓶颈。内容涵盖SQL性能监控、CPU资源使用情况分析及优化方法。

1106

被折叠的 条评论
为什么被折叠?



