查看cpu占用最高的回话以及sql语句
时间: 2023-05-23 14:04:51 浏览: 67
A:
你可以通过以下步骤查找cpu占用最高的会话及其对应的SQL语句:
1. 使用以下命令查找当前活动的会话以及它们的进程ID(PID)和CPU占用率:
```
SELECT s.sid, s.serial#, p.spid, ROUND(p.cpu_time/1000000,2) "CPU(sec)"
FROM v$session s, v$process p
WHERE s.paddr = p.addr
ORDER BY p.cpu_time DESC;
```
这将返回一个结果集,其中包括所有当前活动会话的SID、序列号、进程ID和CPU占用率,按CPU占用率从高到低排序。
2. 记下CPU占用最高的会话的SID和序列号。
3. 使用以下命令查找那个会话执行的SQL语句:
```
SELECT s.sid, s.serial#, s.sql_id, s.sql_child_number, s.sql_plan_hash_value,
ROUND(s.cpu_time/1000000,2) "CPU(sec)", s.status, s.username, s.osuser,
q.sql_text
FROM v$sql q, v$session s
WHERE s.sql_id = q.sql_id AND s.serial# = q.child_number AND
s.sid = <session_sid> AND s.serial# = <session_serial#>;
```
将`<session_sid>`和`<session_serial#>`替换为您在步骤2中记下的SID和序列号,然后运行此命令。这将返回与该会话关联的SQL语句及其执行计划。