当前位置:数据库 > Oracle >>

通过内存占用情况,找出oracle的session所对应的program

通过内存占用情况,找出oracle的session所对应的program
 
通常情况下,感觉oracle数据库比较慢了,会首先查找AIX操作系统所占内存、CPU最大的process,然后由该process的ID找出对应的oracle session、program,从而进行优化。
     先做如下交代:
 
     AIX操作系统操作:
内存排序:      ps -ealf|head -1;ps -ealf|sort -rn +9|head -50
CPU排序:       ps aux|head -1;ps aux|sort -rn +2|head -20
查找最大资源:ps aux|sort -rn +2|head -20
 
     Oracle两个动态视图:
gv$process:这里的process是操作系统层面的,也是调试oracle数据库的入口;
gv$session:这里才进入到oracle会话,查看所对应的program等等。
          注:v&前面的g表示集群。若有多个实例,则用gv$视图查看更加方便,比如哪个程序跑在哪个实例上。
 
     操作步骤:
 
         首先查找所占资源最大的PID所对应的Process的address号:
select addr from gv$process where spid in (6423194)
           select addr from gv$process where spid in (1880090 )

 

         然后查找该进程所对应的session,可以查看到对应的username、machine、program等等。
           
select * from gv$session  where paddr in (select addr from gv$process where spid in ( 1880090))

 

 
Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,