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

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

WBOY
WBOYOriginal
2016-06-07 16:35:311119browse

? ? ?通常情况下,感觉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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn