ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

oracle查询消耗服务器资源SQL语句

2019-03-21 11:38:40  阅读:282  来源: 互联网

标签:服务器资源 CPU DECODE SESSION SQL oracle ASH ID


1、查找最近一天内,最消耗CPU的SQL语句

SELECT ASH.INST_ID,
       ASH.SQL_ID,
       (SELECT VS.SQL_TEXT
          FROM GV$SQLAREA VS
         WHERE VS.SQL_ID = ASH.SQL_ID
           AND ASH.INST_ID = VS.INST_ID) SQL_TEXT,
       ASH.SQL_CHILD_NUMBER,
       ASH.SQL_OPNAME,
       ASH.SESSION_INFO,
       COUNTS,
       PCTLOAD * 100 || '%' PCTLOAD
  FROM (SELECT ASH.INST_ID,
               ASH.SQL_ID,
               ASH.SQL_CHILD_NUMBER,
               ASH.SQL_OPNAME,
               (ASH.MODULE || '--' || ASH.ACTION || '--' || ASH.PROGRAM || '--' ||
               ASH.MACHINE || '--' || ASH.CLIENT_ID || '--' ||
               ASH.SESSION_TYPE) SESSION_INFO,
               COUNT(*) COUNTS,
               ROUND(COUNT(*) / SUM(COUNT(*)) OVER(), 2) PCTLOAD,
               DENSE_RANK() OVER(ORDER BY COUNT(*) DESC) RANK_ORDER
          FROM GV$ACTIVE_SESSION_HISTORY ASH
         WHERE ASH.SESSION_TYPE <> 'BACKGROUND'
           AND ASH.SESSION_STATE = 'ON CPU'
           AND SAMPLE_TIME > SYSDATE - 1
         GROUP BY ASH.INST_ID,
                  ASH.SQL_ID,
                  ASH.SQL_CHILD_NUMBER,
                  ASH.SQL_OPNAME,
                  (ASH.MODULE || '--' || ASH.ACTION || '--' || ASH.PROGRAM || '--' ||
                  ASH.MACHINE || '--' || ASH.CLIENT_ID || '--' ||
                  ASH.SESSION_TYPE)) ASH
 WHERE RANK_ORDER <= 10
 ORDER BY COUNTS DESC;

2、查找最近一天内,最消耗CPU的会话

SELECT SESSION_ID, COUNT(*)
  FROM V$ACTIVE_SESSION_HISTORY V
 WHERE V.SESSION_STATE = 'ON CPU'
   AND V.SAMPLE_TIME > SYSDATE - 1
 GROUP BY SESSION_ID
 ORDER BY COUNT(*) DESC;

3、查找最近一天内,最消耗资源的会话

SELECT ASH.SESSION_ID,
       ASH.SESSION_SERIAL#,
       ASH.USER_ID,
       ASH.PROGRAM,
       SUM(DECODE(ASH.SESSION_STATE, 'ON CPU', 1, 0)) "CPU",
       SUM(DECODE(ASH.SESSION_STATE, 'WAITING', 1, 0)) -
       SUM(DECODE(ASH.SESSION_STATE,
                  'WAITING',
                  DECODE(ASH.WAIT_CLASS, 'USER I/O', 1, 0),
                  0)) "WAITING",
       SUM(DECODE(ASH.SESSION_STATE,
                  'WAITING',
                  DECODE(ASH.WAIT_CLASS, 'USER I/O', 1, 0),
                  0)) "IO",
       SUM(DECODE(ASH.SESSION_STATE, 'ON CPU', 1, 1)) "TOTAL"
  FROM V$ACTIVE_SESSION_HISTORY ASH
 WHERE ASH.SAMPLE_TIME > SYSDATE - 1
 GROUP BY ASH.SESSION_ID, ASH.USER_ID, ASH.SESSION_SERIAL#, ASH.PROGRAM
 ORDER BY SUM(DECODE(ASH.SESSION_STATE, 'ON CPU', 1, 1));

 

标签:服务器资源,CPU,DECODE,SESSION,SQL,oracle,ASH,ID
来源: https://www.cnblogs.com/beanbag/p/10570527.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有