>  기사  >  데이터 베이스  >  通过内存占用情况,找出oracle的session所对应的program

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

WBOY
WBOY원래의
2016-06-07 16:35:311119검색

? ? ?通常情况下,感觉oracle数据库比较慢了,会首先查找AIX操作系统所占内存、CPU最大的process,然后由该process的ID找出对应的oracle session、program,从而进行优化。 ? ? ?先做如下交代: ? ?? ?AIX操作系统操作: 内存排序: ? ? ?ps -ealf|head -1;p

? ? ?通常情况下,感觉oracle数据库比较慢了,会首先查找AIX操作系统所占内存、CPU最大的process,然后由该process的ID找出对应的oracle session、program,从而进行优化。

? ? ?先做如下交代:


? ?? ?AIX操作系统操作:

  1. 内存排序: ? ? ?ps -ealf|head -1;ps -ealf|sort -rn +9|head -50
  2. CPU排序: ? ? ??ps aux|head -1;ps aux|sort -rn +2|head -20
  3. 查找最大资源:ps aux|sort -rn +2|head -20
? ? ? Oracle两个动态视图:
  1. gv$process:这里的process是操作系统层面的,也是调试oracle数据库的入口;
  2. 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))




作者:yichangzyh 发表于2013-7-15 20:19:35 原文链接

阅读:83 评论:0 查看评论

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.