签到成功

知道了

CNDBA社区CNDBA社区

找出消耗 CPU 最高的进程对应的 SQL 语句

2017-01-10 23:02 2696 0 原创 常用脚本
作者: dave

SET LINE 240
SET VERIFY OFF
COLUMN SID FORMAT 999
COLUMN PID FORMAT 999
COLUMN S_# FORMAT 999
COLUMN USERNAME FORMAT A9 HEADING "ORA USER"
COLUMN PROGRAM FORMAT A29
COLUMN SQL     FORMAT A60
COLUMN OSNAME FORMAT A9 HEADING "OS USER"
SELECT P.PID PID,S.SID SID,P.SPID SPID,S.USERNAME USERNAME,S.OSUSER OSNAME,P.SERIAL# S_#,
P.TERMINAL,P.PROGRAM PROGRAM,P.BACKGROUND,S.STATUS,RTRIM(SUBSTR(A.SQL_TEXT, 1 , 80 )) SQL
FROM V$PROCESS P, V$SESSION S,V$SQLAREA A WHERE P.ADDR = S.PADDR 
AND S.SQL_ADDRESS = A.ADDRESS (+) AND P.SPID LIKE '%&1%' ;

ENTER VALUE FOR 1 : PID?   --(这里输入占用 CPU 最高的进程对应的 PID )
SET TERMOUT OFF
SPOOL MAXCPU.TXT
SELECT '++' ||S.USERNAME USERNAME,RTRIM(REPLACE (A.SQL_TEXT,CHR( 10 ), '' ))|| ';' 
FROM V$PROCESS P, V$SESSION S,V$SQLAREA A WHERE P.ADDR = S.PADDR 
AND S.SQL_ADDRESS = A.ADDRESS (+) AND P.SPID LIKE '%&&1%' ;
Enter value for 1: PID     --(这里输入占用 CPU 最高的进程对应的 PID )
spool off                  -- ( 这句放在最后执行 )

http://www.cndba.cn/cndba/dave/article/1675 http://www.cndba.cn/cndba/dave/article/1675
http://www.cndba.cn/cndba/dave/article/1675
http://www.cndba.cn/cndba/dave/article/1675
http://www.cndba.cn/cndba/dave/article/1675
http://www.cndba.cn/cndba/dave/article/1675 http://www.cndba.cn/cndba/dave/article/1675 http://www.cndba.cn/cndba/dave/article/1675 http://www.cndba.cn/cndba/dave/article/1675 http://www.cndba.cn/cndba/dave/article/1675

版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 2262
    原创
  • 3
    翻译
  • 578
    转载
  • 192
    评论
  • 访问:8080887次
  • 积分:4349
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ