暂无图片
SQL调优
我来答
分享
zy
2023-05-17
SQL调优
如何通过TOPAS中的占CPU高的PID找到对应的SQL?
我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
伟鹏

如下sql可以查找到对应的sql_id,有了sql_id就可以从v$sqlarea中找到对应的sql:

select 

  'USERNAME   :'||s.username   ||chr(10)||

  'SCHEMA     :'||s.schemaname ||chr(10)||

  'OSUSER     :'||s.osuser     ||chr(10)||

  'PROGRAM    :'||s.program    ||chr(10)||

  'SPID       :'||p.spid       ||chr(10)||

  'SID        :'||s.sid        ||chr(10)||

  'SERIAL#    :'||s.serial#    ||chr(10)||

  'KILL STRING:'||''''||s.sid||','||s.serial#||''''||chr(10)||

  'MACHINE    :'||s.machine    ||chr(10)||

  'TYPE       :'||s.type       ||chr(10)||

  'TERMINAL   :'||s.terminal   ||chr(10)||

  'SQL_ID     :'||q.sql_id     ||chr(10)||

  'SQL TEXT   :'||q.sql_text

  from v$session s,v$process p,v$sql q

  where s.paddr=p.addr

  and   p.spid=&PID_FROM_OS

  and   s.sql_id=q.sql_id(+);

暂无图片 评论
暂无图片 有用 1
豆宇斯

SELECT s.sid, s.serial#, p.spid, s.username, s.machine, s.program, s.status, s.sql_text
FROM v$session s
JOIN v$process p ON s.paddr = p.addr
LEFT JOIN v$sql sq ON s.sql_id = sq.sql_id
WHERE p.spid = <PID>;

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏