打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
通过进程查找到等待的session以及sql

1、  先用ps -aux查询,发现有个进程占用大量CPU,记录下PID

2、  用语句SELECT a.username,a.sid,a.serial# FROM v$session a,v$process c
WHERE c.addr=a.paddr and spid=PID
查出相应的SESSION

3、  用语句select * from v$session_wait where sid=...

www.ixdba.net


就查出等待事件是什么。

以上操作其实还可以用一个sql实现:

SELECT   /*+ ORDERED */
         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'))
ORDER BY piece ASC
/

这里我们涉及了3个视图,并应用其关联进行数据获取.
首先需要输入一个pid,这个pidprocess id,也就是在Topps中我们看到的PID.
通过pidv$process.spid相关联我们可以获得Process的相关信息
进而通过v$process.addrv$session.paddr相关联,我们就可以获得和session相关的所有信息.
再结合v$sqltext,我们即可获得当前session正在执行的SQL语句.

通过v$process视图,我们得以把操作系统和数据库关联了起来

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
SPID、PID、SID区别
[Oracle数据库日常操作]与系统进程相关的一些命令
Oracle维护常用SQL语句汇总
Oracle查看死锁
oracle编译函数卡死问题
常用定位library cache lock的方法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服