You were brought to this page based on an internet search
and as a free service to Oracle DBAs.
The text below is an except from the book,
Oracle Performance Firefighting, written by
Craig Shallahamer of
OraPub, Inc.
Figures and tables are not included on this page, only their reference.
To order the book in either print or PDF form, click
here.
©2009, 2010 by Craig Shallahamer. This is copyrighted material.
PleaseOut of respect for those involved in the creation of the book and also for
their familes, we ask you to respect the copyright both in intent and deed. Thank you.
-------------------------------
Figure 6-33. Shown is a standard v$session_wait-based report (in particular, the OSM swswp.sql script) with three sessions involved in a TM enqueue wait. In this particular situation, session 4393 has the table locked and is not waiting on the enqueue. Session 4388 is next in the queue, followed by session 4383.
The TX enqueue wait is arguably the most common enqueue wait. Personally, I think it's also the most fascinating. I want to drill down into this wait event because it will give you a much deeper understanding of how Oracle manages transaction concurrency, which is related to block cloning, undo, read consistency, and interested transactions lists. I introduced the undo segment's transaction table earlier in the chapter. Now we're going much, much deeper.
While the TX enqueue is known as the row-level lock enqueue, there are actually three reasons for a TX enqueue to be posted, and only one of those is actually a row-level lock. Figure 6-34 is very similar to Figure 6-1 shown at the beginning of this chapter. Every Oracle data block can be abstracted into three areas:
©2009, 2010 by Craig Shallahamer. This is copyrighted material.
PleaseOut of respect for those involved in the creation of the book and also for
their familes, we ask you to respect the copyright both in intent and deed. Thank you.
|