1、sql语句
测试这么一条占CPU 高的程序:
declare
i number;
j number;
begin
i := 0;
loop
j := sqrt(i);
i := i + 1;
end loop;
end;
/
2、查看cpu
3、根据pid查询sql
4、查看当前执行的sql
SELECT d.spid,a.sid,b.event,b.status,C.SQL_TEXT,B.USERNAME,B.OSUSER,B.MACHINE,B.PROGRAM
FROM gV$SESS_IO A,gV$SESSION B,gV$SQL C,gV$PROCESS D
WHERE A.SID=B.SID AND B.SQL_HASH_VALUE=C.HASH_VALUE
AND B.PADDR=D.ADDR and b.status=‘ACTIVE’ order by sql_text;
5、可以使用以下SQL查询来找到特定进程(通过SPID关联)正在执行的SQL语句: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’ – 这里替换为实际的进程ID
)
)
ORDER BY piece ASC;