zoukankan      html  css  js  c++  java
  • oracle查询消耗服务器资源SQL语句

    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、查找最近一天内,最消耗I/O的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 = 'WAITING'
               AND ASH.SAMPLE_TIME > SYSDATE - 1
               AND ASH.WAIT_CLASS = 'USER I/O'
             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;

    4、查找最近一天内,最消耗资源的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 = 'WAITING'
               AND ASH.SAMPLE_TIME > SYSDATE - 1
               AND ASH.WAIT_CLASS = 'USER I/O'
             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;

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

    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));
  • 相关阅读:
    AJPFX总结mysql复制表结构,表数据
    AJPFX总结IO流中的缓冲思想
    AJPFX学习Java函数知识总结
    AJPFX总结面向对象特征之一的继承知识
    AJPFX学习笔记JavaAPI之String类
    AJPFX:学习JAVA程序员两个必会的冒泡和选择排序
    AJPFX:关于面向对象及java的一些机制的思考
    ES6 入门系列
    Android studio工具介绍
    获得 LayoutInflater 实例的三种方式
  • 原文地址:https://www.cnblogs.com/beanbag/p/10570527.html
Copyright © 2011-2022 走看看