iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >使用DATABASE Log off收集oracle 等待事件信息
  • 948
分享到

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

2024-04-02 19:04:59 948人浏览 薄情痞子
摘要

实例级别的监控,一直开启并且低开销:建立基础表:create table sys.sesstat_history tablespace EOL as SEL

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

建立基础表:

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

您可能感兴趣的文档:

--结束END--

本文标题: 使用DATABASE Log off收集oracle 等待事件信息

本文链接: https://www.lsjlt.com/news/37885.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作