Skip to content

Oracle Wait Events Reference - Diagnose & Fix Database Waits

Wait events tell you exactly where Oracle sessions spend their time. This reference covers the wait events DBAs encounter most, with diagnostic queries and tuning guidance for each one.

Start by identifying which waits dominate your system:

-- Top system-wide wait events (excluding idle)
SELECT event, total_waits, time_waited_micro/1000000 AS time_waited_sec,
ROUND(average_wait * 10, 2) AS avg_wait_ms
FROM v$system_event
WHERE wait_class != 'Idle'
ORDER BY time_waited_micro DESC
FETCH FIRST 15 ROWS ONLY;
-- What active sessions are waiting on right now
SELECT event, COUNT(*) AS sessions_waiting
FROM v$session
WHERE status = 'ACTIVE' AND wait_class != 'Idle'
GROUP BY event
ORDER BY sessions_waiting DESC;

For a deeper introduction to wait event analysis methodology, see the Oracle Wait Events Guide.

These utility scripts help you capture wait data quickly:

For AWR-based historical analysis, see the Performance Tuning Cheat Sheet.