SELECT sql_text, parse_calls, executions
FROM v$sqlarea
ORDER BY parse_calls DESC;
SELECT name, value
FROM v$sysstat
WHERE name LIKE 'parse count%';
SELECT * FROM v$osstat;
SELECT ss.sid, se.command, ss.value AS cpu_usage,
se.username, se.program
FROM v$sesstat ss, v$session se
WHERE ss.statistic# IN (SELECT statistic# FROM v$statname WHERE name = 'CPU used by this session')
AND se.sid = ss.sid
AND ss.sid > 6 -- 過濾後台進程
ORDER BY cpu_usage DESC;
SELECT s.sid, s.event, s.machine, s.osuser, s.wait_time,
w.seq#, q.sql_text
FROM v$session_wait w, v$session s, v$process p, v$sqlarea q
WHERE s.paddr = p.addr
AND s.sid = :target_sid
AND s.sql_address = q.address;
SELECT s.sid, w.wait_time, w.seconds_in_wait, w.state,
w.wait_time_micro, w.time_remaining_micro, w.time_since_last_wait_micro,
p.username, s.status, s.server, s.schemaname, s.osuser, s.machine,
p.terminal, p.program, s.logon_time, w.event, w.wait_class,
s.tracefile, q.sql_text, q.last_active_time
FROM v$session_wait w, v$session s, v$process p, v$sqlarea q
WHERE s.paddr = p.addr
AND s.sid IN (
SELECT sid FROM (
SELECT ss.sid
FROM v$sesstat ss, v$session se
WHERE ss.statistic# IN (SELECT statistic# FROM v$statname WHERE name = 'CPU used by this session')
AND se.sid = ss.sid AND ss.sid > 6
ORDER BY ss.value DESC
) WHERE ROWNUM < 11
)
AND s.sql_address = q.address;
此查詢可快速定位佔用 CPU 最多的用戶會話、等待事件、執行 SQL,是性能應急排查利器。