Monitor DB Transactional Blocking Locks in Oracle 9i
November 2, 2004
>>Script Language and Platform: Oracle
This script will both alert and capture relavent data on Oracle SQL blocking locks events.
The following script creates 2 procedures, and 1 new table (in place of TBS_AAAAA put in the tablespace you want in this table) and submits the proc to DBMS_JOB, running it at 10 minute intervals. We put this in place to find transactional (dml) blocking locks that seemed to come up 2 to 3 times a day in our system, and would stay blocked for 10 or more minutes before naturally releasing. This was causing performance issues, and thus we needed a way to pro-actively monitor and capture all related data.
The script will populate the LOCKS_SQL table with blocking and waiting sids, usernames, logon_time, etc., and sql causing the blocking lock as well as the previous sql hash value for later review by the application teams.
I also included the mail package.
The following was fully tested utilization Oracle 9i but should work in earlier or later versions of Oracle as well.
Author: Roger Eisentrager
Disclaimer: We hope that the information on these script pages is
valuable to you. Your use of the information contained in these pages,
however, is at your sole risk. All information on these pages is provided
"as -is", without any warranty, whether express or implied, of its accuracy,
completeness, or fitness for a particular purpose...
Back to Database Journal Home