2026-03-12 20:23:15
This commit is contained in:
103
vg/awr_system_event_time.sql
Normal file
103
vg/awr_system_event_time.sql
Normal file
@@ -0,0 +1,103 @@
|
||||
@@header
|
||||
set term off
|
||||
/*
|
||||
*
|
||||
* Author : Vishal Gupta
|
||||
* Purpose : Display system event times from AWR
|
||||
*
|
||||
* Revision History:
|
||||
* ===================
|
||||
* Date Author Description
|
||||
* --------- ------------ -----------------------------------------
|
||||
* 15-MAY-14 Vishal Gupta Created
|
||||
*/
|
||||
set term on
|
||||
|
||||
/************************************
|
||||
* INPUT PARAMETERS
|
||||
************************************/
|
||||
|
||||
UNDEFINE event_name
|
||||
UNDEFINE days
|
||||
|
||||
DEFINE event_name="&&1"
|
||||
DEFINE days="&&2"
|
||||
|
||||
COLUMN _days NEW_VALUE days NOPRINT
|
||||
COLUMN _force_matching_signature NEW_VALUE force_matching_signature NOPRINT
|
||||
|
||||
set term off
|
||||
SELECT DECODE('&&days','','3','&&days') "_days"
|
||||
FROM DUAL;
|
||||
set term on
|
||||
|
||||
|
||||
Prompt
|
||||
Prompt **************************************************************
|
||||
Prompt * AWR System Wide Wait Events (In seconds)
|
||||
PROMPT * (Only snapshots with non-zero values are displayed)
|
||||
PROMPT *
|
||||
PROMPT * Input Parameters
|
||||
PROMPT * - Event Name = '&&event_name'
|
||||
PROMPT * - Days = '&&days'
|
||||
Prompt **************************************************************
|
||||
|
||||
COLUMN end_interval_time HEADING "Snap Time" FORMAT a15
|
||||
COLUMN all_Inst HEADING "All|Inst|(sec)" FORMAT 999,999,999,999
|
||||
COLUMN inst1 HEADING "inst1|(sec)" FORMAT 999,999,999
|
||||
COLUMN inst2 HEADING "inst2|(sec)" FORMAT 999,999,999
|
||||
COLUMN inst3 HEADING "inst3|(sec)" FORMAT 999,999,999
|
||||
COLUMN inst4 HEADING "inst4|(sec)" FORMAT 999,999,999
|
||||
COLUMN inst5 HEADING "inst5|(sec)" FORMAT 999,999,999
|
||||
COLUMN inst6 HEADING "inst6|(sec)" FORMAT 999,999,999
|
||||
COLUMN inst7 HEADING "inst7|(sec)" FORMAT 999,999,999
|
||||
COLUMN inst8 HEADING "inst8|(sec)" FORMAT 999,999,999
|
||||
COLUMN event_name HEADING "Event Name" FORMAT a40 TRUNCATE
|
||||
|
||||
WITH snapshots AS
|
||||
(SELECT /*+ NO_MERGE */
|
||||
s.dbid
|
||||
, s.instance_number
|
||||
, s.snap_id
|
||||
, s.end_interval_time
|
||||
, lag(s.snap_id) OVER (PARTITION BY s.dbid, s.instance_number ORDER BY s.snap_id) prev_snap_id
|
||||
FROM v$database d
|
||||
JOIN dba_hist_snapshot s ON s.dbid = d.dbid
|
||||
WHERE 1=1
|
||||
AND s.END_INTERVAL_TIME > sysdate - &days - (1/24)
|
||||
)
|
||||
SELECT /*+ USE_NL(s e e_prev) */
|
||||
TO_CHAR(TRUNC(s.end_interval_time,'MI'),'DD-MON-YY HH24:MI') end_interval_time
|
||||
, ROUND(SUM(DECODE(e.instance_number,1,(e.time_waited_micro - NVL( prev_e.time_waited_micro,0) )/1000000 ,0) )) All_Inst
|
||||
, ROUND(SUM(DECODE(e.instance_number,1,(e.time_waited_micro - NVL( prev_e.time_waited_micro,0) )/1000000 ,0) )) inst1
|
||||
, ROUND(SUM(DECODE(e.instance_number,2,(e.time_waited_micro - NVL( prev_e.time_waited_micro,0) )/1000000 ,0) )) inst2
|
||||
, ROUND(SUM(DECODE(e.instance_number,3,(e.time_waited_micro - NVL( prev_e.time_waited_micro,0) )/1000000 ,0) )) inst3
|
||||
, ROUND(SUM(DECODE(e.instance_number,4,(e.time_waited_micro - NVL( prev_e.time_waited_micro,0) )/1000000 ,0) )) inst4
|
||||
, ROUND(SUM(DECODE(e.instance_number,5,(e.time_waited_micro - NVL( prev_e.time_waited_micro,0) )/1000000 ,0) )) inst5
|
||||
, ROUND(SUM(DECODE(e.instance_number,6,(e.time_waited_micro - NVL( prev_e.time_waited_micro,0) )/1000000 ,0) )) inst6
|
||||
, ROUND(SUM(DECODE(e.instance_number,7,(e.time_waited_micro - NVL( prev_e.time_waited_micro,0) )/1000000 ,0) )) inst7
|
||||
, ROUND(SUM(DECODE(e.instance_number,8,(e.time_waited_micro - NVL( prev_e.time_waited_micro,0) )/1000000 ,0) )) inst8
|
||||
, e.event_name
|
||||
FROM snapshots s
|
||||
JOIN DBA_HIST_SYSTEM_EVENT e ON e.dbid = s.dbid and e.instance_number = s.instance_number and e.snap_id = s.snap_id
|
||||
JOIN DBA_HIST_SYSTEM_EVENT prev_e ON prev_e.dbid = s.dbid and prev_e.instance_number = s.instance_number and prev_e.snap_id = s.prev_snap_id and e.event_id = prev_e.event_id
|
||||
WHERE 1=1
|
||||
and e.event_name like '&&event_name'
|
||||
GROUP BY e.dbid
|
||||
, TRUNC(s.end_interval_time,'MI')
|
||||
, e.event_name
|
||||
having
|
||||
ROUND(SUM(DECODE(e.instance_number,1,(e.time_waited_micro - NVL( prev_e.time_waited_micro,0) )/1000000 ,0) )) > 0
|
||||
OR ROUND(SUM(DECODE(e.instance_number,2,(e.time_waited_micro - NVL( prev_e.time_waited_micro,0) )/1000000 ,0) )) > 0
|
||||
OR ROUND(SUM(DECODE(e.instance_number,3,(e.time_waited_micro - NVL( prev_e.time_waited_micro,0) )/1000000 ,0) )) > 0
|
||||
OR ROUND(SUM(DECODE(e.instance_number,4,(e.time_waited_micro - NVL( prev_e.time_waited_micro,0) )/1000000 ,0) )) > 0
|
||||
OR ROUND(SUM(DECODE(e.instance_number,5,(e.time_waited_micro - NVL( prev_e.time_waited_micro,0) )/1000000 ,0) )) > 0
|
||||
OR ROUND(SUM(DECODE(e.instance_number,6,(e.time_waited_micro - NVL( prev_e.time_waited_micro,0) )/1000000 ,0) )) > 0
|
||||
OR ROUND(SUM(DECODE(e.instance_number,7,(e.time_waited_micro - NVL( prev_e.time_waited_micro,0) )/1000000 ,0) )) > 0
|
||||
OR ROUND(SUM(DECODE(e.instance_number,8,(e.time_waited_micro - NVL( prev_e.time_waited_micro,0) )/1000000 ,0) )) > 0
|
||||
ORDER BY e.dbid
|
||||
, TRUNC(s.end_interval_time,'MI')
|
||||
, e.event_name
|
||||
;
|
||||
|
||||
@@footer
|
||||
Reference in New Issue
Block a user