浏览 4830 次
锁定老帖子 主题:从linux的pid到oracle的SQL
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-05-08
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 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |