linux oracle查询语句,从linux的pid查询oracle执行语句的方法(ZT)
发布日期:2021-06-24 13:22:52 浏览次数:2 分类:技术文章

本文共 863 字,大约阅读时间需要 2 分钟。

我们先学习几个比较关键的V$视图。

V$process

从linux中查询到的pid在V$process这个视图中,相对应的字段为spid,举例如下:在linux中,执行top命令,会显示出每个进程在linux中的pid,所属用户,运行的时间以及占用cpu的比率等,我们主要关注的是占用cpu较高的进程,我们记录pid号,查询语句为select spid,addr from v$process where spid = &pid(注:&pid为在top下的pid)。里面有很多的列,我们现在只需要两个字段就可以了,addr与V$session中的paddr关联。我们取得它是为了得到V$session的相关数据。

V$session

在上面的sql语句得到的addr,经过下面的查询select sql_address from V$session where paddr=&addr,就可以得到sqlarea中的address。

V$sqlarea

sql_address就是在视图V$sqlarea中对应的字段address。

经过上面的,我们可以得到一个语句

SELECT sqlarea.SQL_TEXT

FROM V$session sess,V$process pro,V$sqlarea sqlarea

WHERE pro.sPID=&pid

AND sess.PADDR = pro.ADDR

AND sess.SQL_ADDRESS = sqlarea.ADDRESS

-- 查询操作系统进程正在执行的 SQL

SELECT b .sid oracleID , b . serial# , spid操作系统 ID, paddr , sql_text当前 SQL

FROM v$processa, v$session b , v$sqlarea c

WHERE a. addr= b . paddrAND spid= '6341' AND b . sql_hash_value= c . hash_value

转载地址:https://blog.csdn.net/weixin_33102135/article/details/116809668 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:linux 5.5 外接usb2.0硬盘,RHEL5 使用pam_usb
下一篇:linux dts spiflash分区,dts中修改SPI,如何实现SPI平台数据在dts中的实现?

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月12日 01时59分36秒