denrepo

OracleASH & AWR

Top wait events in the last hour (ASH)

Where the database spent its time over the last hour, with CPU counted as its own line.

Diagnostics Pack

Not yet verified. How scripts are tested

ora-ash-events.sql
1CLEAR COLUMNS2SET LINESIZE 120 PAGESIZE 100 TRIMOUT ON TAB OFF3COLUMN activity   FORMAT A454COLUMN wait_class HEADING "WAIT CLASS" FORMAT A155COLUMN samples    HEADING "DB SECS"    FORMAT 999,9906COLUMN pct        HEADING "%"          FORMAT 990.97 8SELECT * FROM (9  SELECT NVL(event, 'ON CPU') AS activity,10         NVL(wait_class, 'CPU') AS wait_class,11         COUNT(*) AS samples,12         ROUND(100 * RATIO_TO_REPORT(COUNT(*)) OVER (), 1) AS pct13  FROM v$active_session_history14  WHERE sample_time > SYSTIMESTAMP - INTERVAL '1' HOUR15  GROUP BY NVL(event, 'ON CPU'), NVL(wait_class, 'CPU')16  ORDER BY samples DESC17) WHERE ROWNUM <= 15;

Save it as ora-ash-events.sql and run it with SQL> @ora-ash-events.

Open in denrepo

More Oracle scripts: ASH & AWR