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-29 is a simple dba_segments-based query. Each row in dba_segments contains information about a single Oracle segment. It also contains columns for the header block's file number and block number. So a simple query like the one shown in Figure 6-29 will reveal if the busy buffer is in fact a header block. In our example, block 4,54 is not a header block. Therefore, because the segment type is table, we know the busy buffer contains rows. In addition to this, when I repeatedly queried the v$sesson_wait-based script shown in Figure 6-25, I noticed that different orders table blocks were being waited upon. This means sessions are waiting to access rows within multiple blocks of the orders table.
Figure 6-29. This simple dba_segments-based query clearly shows that block 4,54 is not a header block.
Now that we have identified the buffer busy pattern, the object type, and whether the block is a header block, we have enough information to proceed directly to a list of possible solutions.
©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.
|