文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

使用DATABASE Log off收集oracle 等待事件信息

2024-04-02 19:55

关注

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

建立基础表:

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯