使用DATABASELogoff收集oracle等待事件信息-创新互联

实例级别的监控,一直开启并且低开销:

创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站建设、成都做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的二道网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

建立基础表:

create table sys.sesstat_history tablespace EOL as SELECT c.username,        c.osuser,        a.sid,        c.serial#,        c.paddr,        c.process,        c.logon_time,        a.statistic#,        b.name,        a.value,        SYSDATE AS logoff_timestamp   FROM v$sesstat a, v$statname b, v$session c  WHERE 1 = 2 create table sys.session_event_history tablespace EOL as SELECT b.sid,        b.SERIAL#,        b.username,        b.osuser,        b.paddr,        b.process,        b.logon_time,        b.type,        a.event,        a.total_waits,        a.total_timeouts,        a.time_waited,        a.average_wait,        a.max_wait,        SYSDATE AS logoff_timestamp   FROM v$session_event a, v$session b  WHERE 1 = 2

创建触发器:

CREATE OR REPLACE TRIGGER sys.logoff_trig   BEFORE logoff ON DATABASE DECLARE   logoff_sid  PLS_INTEGER;   logoff_time DATE := SYSDATE; BEGIN   SELECT sid INTO logoff_sid FROM v$mystat WHERE rownum < 2;   INSERT INTO sys.session_event_history     (sid,      serial#,      username,      osuser,      paddr,      process,      logon_time,      TYPE,      event,      total_waits,      total_timeouts,      time_waited,      average_wait,      max_wait,      logoff_timestamp)     SELECT b.sid,            b.serial#,            b.username,            b.osuser,            b.paddr,            b.process,            b.logon_time,            b.type,            a.event,            a.total_waits,            a.total_timeouts,            a.time_waited,            a.average_wait,            a.max_wait,            SYSDATE AS logoff_timestamp       FROM v$session_event a, v$session b      WHERE a.sid = b.sid        AND b.username = login_user        AND b.sid = logoff_sid;   INSERT INTO sys.sesstat_history     (username,      osuser,      sid,      serial#,      paddr,      process,      logon_time,      statistic#,      NAME,      VALUE,      logoff_timestamp)     SELECT c.username,            c.osuser,            a.sid,            c.serial#,            c.paddr,            c.process,            c.logon_time,            a.statistic#,            b.name,            a.value,            logoff_time       FROM v$sesstat a, v$statname b, v$session c      WHERE a.statistic# = b.statistic#        AND a.sid = c.sid        AND b.name IN ('CPU used where call started',                       'CPU used by this session',                       'recursive cpu usage',                       'parse time cpu')        AND c.sid = logoff_sid        AND c.username = login_user; END;

查询消耗CPU的等待事件排名:

SQL> SELECT *   FROM (SELECT a.sid, a.serial#, a.event, a.total_waits           FROM session_event_history a          ORDER BY a.time_waited DESC)  WHERE rownum < 100;   2    3    4    5          SID    SERIAL# EVENT                                                        TOTAL_WAITS ---------- ---------- ------------------------------------------------------------ -----------       1858       8391 SQL*Net message from client                                       147692       1437      52565 SQL*Net message from client                                        34305        584      52801 SQL*Net message from client                                        85105        585      40229 SQL*Net message from client                                       163331        874       3263 SQL*Net message from client                                        77519       1285      21797 SQL*Net message from client                                        19041        861      25015 SQL*Net message from client                                          194        726       9275 SQL*Net message from client                                        66724       1717       1935 SQL*Net message from client                                        92394       1014        883 SQL*Net message from client                                        34455         21      10841 SQL*Net message from client                                        28685

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前文章:使用DATABASELogoff收集oracle等待事件信息-创新互联
标题来源:http://myzitong.com/article/csphci.html