Oracle 11g中查询CPU占有率高的SQL
oracle版本:oracle11g
背景:今天在Linux中的oracle服务上,运用top命令发现许多进程的CPU占有率是100%。
操作步骤:
以进程PID:7851为例
执行以下语句:
方法一:
(1)通过PID,查得相对应的系统进程对应的session id
select sid from v$session where paddr in (select addr from v$process where spid=7851
得到SID:206
(2)根据所得的会话ID查得sql地址和hash值
select sql_address,sql_hash_value from v$session where sid=206
得到:SQL_ADDRESS:6EC554F4 SQL_HASH_VALUE:3141392848
(3)根据sql hash值查得sql语句
select sql_text from v$sqltext where hash_value=3141392848
得到SQL语句:INSERT INTO TEST SELECT * FROM SYS.DBA_OBJECTS 此SQL语句就是此进程CPU占有率过高的语句了。
方法二:
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 = 7851))
ORDER BY piece ASC
通过此SQL语句可以直接得出:
INSERT INTO TEST SELECT * FROM SYS.DBA_OBJECTS 此SQL语句就是此进程CPU占有率过高的语句了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY