Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

3

积分

0

好友

0

主题
1#
发表于 2012-7-3 22:40:55 | 查看: 6755| 回复: 2
AWR TOP 5 EVENT怎么用sql 取出来呢?dba_hist_sys_time_model,dba_hist_snapshot
3#
发表于 2012-7-5 11:08:13
以下是一个例子 可以找出AWR  一天间隔内 的 TOP  EVENT :






  1. select Day, Event_name, Total_wait from (
  2. select day, event_name, sum(event_time_waited) total_wait,
  3. row_number() over (partition by day order by sum(event_time_waited) desc) rn from (
  4. SELECT   to_date(to_char(begin_interval_time,'dd/mm/yyyy'),'dd/mm/yyyy') day,s.begin_interval_time, m.*
  5.     FROM (SELECT ee.instance_number, ee.snap_id, ee.event_name,
  6.                  ROUND (ee.event_time_waited / 1000000) event_time_waited,
  7.                  ee.total_waits,
  8.                  ROUND ((ee.event_time_waited * 100) / et.total_time_waited,
  9.                         1
  10.                        ) pct,
  11.                  ROUND ((ee.event_time_waited / ee.total_waits) / 1000
  12.                        ) avg_wait
  13.             FROM (SELECT ee1.instance_number, ee1.snap_id, ee1.event_name,
  14.                            ee1.time_waited_micro
  15.                          - ee2.time_waited_micro event_time_waited,
  16.                          ee1.total_waits - ee2.total_waits total_waits
  17.                     FROM dba_hist_system_event ee1 JOIN dba_hist_system_event ee2
  18.                          ON ee1.snap_id = ee2.snap_id + 1
  19.                        AND ee1.instance_number = ee2.instance_number
  20.                        AND ee1.event_id = ee2.event_id
  21.                        AND ee1.wait_class_id <> 2723168908
  22.                        AND ee1.time_waited_micro - ee2.time_waited_micro > 0
  23.                   UNION
  24.                   SELECT st1.instance_number, st1.snap_id,
  25.                          st1.stat_name event_name,
  26.                          st1.VALUE - st2.VALUE event_time_waited,
  27.                          1 total_waits
  28.                     FROM dba_hist_sys_time_model st1 JOIN dba_hist_sys_time_model st2
  29.                          ON st1.instance_number = st2.instance_number
  30.                        AND st1.snap_id = st2.snap_id + 1
  31.                        AND st1.stat_id = st2.stat_id
  32.                        AND st1.stat_name = 'DB CPU'
  33.                        AND st1.VALUE - st2.VALUE > 0
  34.                          ) ee
  35.                  JOIN
  36.                  (SELECT et1.instance_number, et1.snap_id,
  37.                          et1.VALUE - et2.VALUE total_time_waited
  38.                     FROM dba_hist_sys_time_model et1 JOIN dba_hist_sys_time_model et2
  39.                          ON et1.snap_id = et2.snap_id + 1
  40.                        AND et1.instance_number = et2.instance_number
  41.                        AND et1.stat_id = et2.stat_id
  42.                        AND et1.stat_name = 'DB time'
  43.                        AND et1.VALUE - et2.VALUE > 0
  44.                          ) et
  45.                  ON ee.instance_number = et.instance_number
  46.                AND ee.snap_id = et.snap_id
  47.                  ) m
  48.          JOIN
  49.          dba_hist_snapshot s ON m.snap_id = s.snap_id
  50. ) group by day ,event_name
  51. order by day desc, total_wait desc
  52. )where rn < 6



  53. DAY       EVENT_NAME                                                       TOTAL_WAIT
  54. --------- ---------------------------------------------------------------- ----------
  55. 05-JUL-12 control file parallel write                                               4
  56. 05-JUL-12 os thread startup                                                         4
  57. 05-JUL-12 DB CPU                                                                    2
  58. 05-JUL-12 buffer busy waits                                                         0
  59. 05-JUL-12 reliable message                                                          0
  60. 04-JUL-12 DB CPU                                                                   34
  61. 04-JUL-12 os thread startup                                                        25
  62. 04-JUL-12 control file parallel write                                              25
  63. 04-JUL-12 db file async I/O submit                                                  9
  64. 04-JUL-12 log file parallel write                                                   6
  65. 03-JUL-12 DB CPU                                                                   33
  66. 03-JUL-12 control file parallel write                                              25
  67. 03-JUL-12 os thread startup                                                        24
  68. 03-JUL-12 db file async I/O submit                                                 13
  69. 03-JUL-12 log file parallel write                                                   4
  70. 02-JUL-12 DB CPU                                                                   64
  71. 02-JUL-12 control file parallel write                                              26
  72. 02-JUL-12 os thread startup                                                        24
  73. 02-JUL-12 db file async I/O submit                                                 12
  74. 02-JUL-12 resmgr:cpu quantum                                                        6
  75. 01-JUL-12 DB CPU                                                                   65
  76. 01-JUL-12 control file parallel write                                              25
  77. 01-JUL-12 os thread startup                                                        25
  78. 01-JUL-12 db file async I/O submit                                                 15
  79. 01-JUL-12 log file parallel write                                                   5
  80. 30-JUN-12 DB CPU                                                                   57
  81. 30-JUN-12 os thread startup                                                        26
  82. 30-JUN-12 control file parallel write                                              25
  83. 30-JUN-12 db file async I/O submit                                                 13
  84. 30-JUN-12 log file parallel write                                                   4
  85. 29-JUN-12 DB CPU                                                                   31
  86. 29-JUN-12 control file parallel write                                              25
  87. 29-JUN-12 os thread startup                                                        24
  88. 29-JUN-12 db file async I/O submit                                                  7
  89. 29-JUN-12 log file parallel write                                                   5
  90. 28-JUN-12 DB CPU                                                                   26
  91. 28-JUN-12 control file parallel write                                              25
  92. 28-JUN-12 os thread startup                                                        24
  93. 28-JUN-12 db file async I/O submit                                                  9
  94. 28-JUN-12 log file parallel write                                                   5
  95. 27-JUN-12 DB CPU                                                                   43
  96. 27-JUN-12 control file parallel write                                              25
  97. 27-JUN-12 os thread startup                                                        25
  98. 27-JUN-12 db file async I/O submit                                                  9
  99. 27-JUN-12 log file parallel write                                                   7
  100. 26-JUN-12 os thread startup                                                         1
  101. 26-JUN-12 control file parallel write                                               1
  102. 26-JUN-12 ADR file lock                                                             0
  103. 26-JUN-12 buffer busy waits                                                         0
  104. 26-JUN-12 db file sequential read                                                   0
复制代码

回复 只看该作者 道具 举报

2#
发表于 2012-7-4 00:02:49
statspack中。 找spreport脚本, 再找到里面执行了@@sprepins ,在后面这个脚本中 搜索 ‘top’.  找到:
--  Top N Wait Events

col idle     noprint;
col event    format a41          heading 'Top &&top_n_events Timed Events|~~~~~~~~~~~~~~~~~~|Event' trunc;
col waits    format 999,999,990  heading 'Waits';
col time     format 99,999,990   heading 'Time (s)';
col pctwtt   format 999.9        heading '%Total|Call|Time';
col avwait   format 99990        heading 'Avg|wait|(ms)';

select event
     , waits
     , time
     , avwait
     , pctwtt
  from (select event, waits, time, pctwtt, avwait
          from (select e.event                               event
                     , e.total_waits - nvl(b.total_waits,0)  waits
                     , (e.time_waited_micro - nvl(b.time_waited_micro,0))/1000000  time
                     , decode( (e.total_waits - nvl(b.total_waits, 0)), 0, to_number(NULL)
                             ,    ( (e.time_waited_micro - nvl(b.time_waited_micro,0)) / &&ustoms )
                                / (e.total_waits - nvl(b.total_waits,0))
                             )        avwait
                     , decode(:tct_us, 0, 0, 100 * (e.time_waited_micro - nvl(b.time_waited_micro,0)) / (:tct_us)            
                             )                              pctwtt
                 from stats$system_event b
                    , stats$system_event e
                where b.snap_id(+)          = :bid
                  and e.snap_id             = :eid
                  and b.dbid(+)             = :dbid
                  and e.dbid                = :dbid
                  and b.instance_number(+)  = :inst_num
                  and e.instance_number     = :inst_num
                  and b.event(+)            = e.event
                  and e.total_waits         > nvl(b.total_waits,0)
                  and e.event not in (select event from stats$idle_event)
               union all
               select 'CPU time'                              event
                    , to_number(null)                         waits
                    , :tcpu/100                               time
                    , to_number(null)                         avwait
                    , decode( :tct_us, 0, 0
                            , 100 * (:tcpu*10000) / :tct_us
                            )                                 pctwait
                 from dual
                where :tcpu > 0
               )
         order by time desc, waits desc
       )
where rownum <= &&top_n_events;

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-11-16 00:29 , Processed in 0.048288 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569