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.
-------------------------------
The key to solving a buffer busy type waits (which includes the read by other session event) is to first gain an understanding of the buffer being waited upon. It's not enough to know the top event is buffer busy waits. You will need to gather additional information before you know the correct solution set. As I'll detail here, the additional required information is the buffer's type and if it is a header block. With this information in hand, you know enough to develop a number of solutions to the problem. To aid in this process, I have developed a four-step diagnostic process:
To start the diagnosis, repeatedly sample the buffer busy waits event's p1 and p2 parameters. The p1 parameter is the buffer's file number, and the p2 parameter is the block number. Normally, when you repeatedly sample the p1 and p2 values, they will change, indicating different buffers are being waited upon. It is also common to see a smaller subset of blocks that are related to a specific object, say the employee table. Finally, while rare, but important to notice, is if the same buffer or two always seem to appear. These would be deemed hot blocks. When you repeatedly sample, take note of the parameter values, as they will be used later in our analysis.
Figure 6-25 shows a single sample query providing the parameter details. In this single sample, three processes were waiting for file number 4 and block number 54. Another sample will normally show multiple processes waiting for a different buffer. Once you have a few samples, move on to step 2.
©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.
|