ITPub博客

首页 > 数据库 > Oracle > 关于数据库进程占用CPU很大通过系统进程反查该进程在执行什么

关于数据库进程占用CPU很大通过系统进程反查该进程在执行什么

原创 Oracle 作者:liuyjishg 时间:2015-07-02 16:23:36 0 删除 编辑
最近处理了一个问题,是数据库连接进程占用CPU性能很高问题
1、这里我先用v$sesstat,v$statname,v$session 和 v$process 二个数据字典,进行关联查询,查出这些进程的连接信息

select p.spid      as os_pro_id,
       ss.sid      as ora_pro_id,
       se.serial#,
       se.osuser,
       se.machine,
       se.command,
       ss.value    CPU,
       se.username,
       se.program
  from v$sesstat ss, v$session se, v$process p
 where p.addr = se.paddr   and se.sid = ss.sid
   AND ss.statistic# in
       (select statistic#
          from v$statname
         where name = 'CPU used by this session')
   and p.spid in ('系统PID');

2、通过查询出来的SID,再用v$sqlarea 和 v$session 关联查询出单个SID所执行的任务
SELECT a.address, a.sql_text
  FROM V$SQLAREA a, V$SESSION b
 WHERE a.ADDRESS = b.SQL_ADDRESS
   and b.sid = 'SID'

3、根据上面查询出来的结果基本上可以判断是哪台机子通过什么方式连接数据库执行的什么任务。






来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/18762014/viewspace-1720478/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2013-05-04

  • 博文量
    7
  • 访问量
    38615