dataiotech Labs
dbaguidedbaguideDBAdataxtoolsdataopsphere
Scripts Library/oracle/#62
Script #62
oracle
Lockingread-onlyMin Version: 11g

Find Blocking Sessions in Oracle

Shows sessions that make others wait, with wait times. Identifies the root session to terminate in lock incidents.

#locks#blocking#enq-tx
oracle · sql
SELECT w.sid AS waiting_sid, w.username AS waiting_user,
       w.event, w.seconds_in_wait,
       b.sid AS blocking_sid, b.serial# AS blocking_serial,
       b.username AS blocking_user, b.status AS blocking_status,
       b.sql_id AS blocking_sql_id, b.prev_sql_id
FROM   v$session w
JOIN   v$session b ON b.sid = w.blocking_session
WHERE  w.blocking_session IS NOT NULL
ORDER  BY w.seconds_in_wait DESC;
Operational Notes & Remediation Guidance

Verify in a staging environment prior to running in production. This is a read-only diagnostic query; it does not acquire exclusive locks.

Production Safety & Execution Standards
  • This script is designed for read-only diagnostics; it does not alter schema or modify data directly.
  • Prior to executing on production systems under high load, verify the target database version (Min. Version: 11g).
  • Exercise caution with mutating actions (e.g., terminating sessions or dropping indexes) referenced in the notes section.