Oracle Performance Firefighting
by Craig Shallahamer

Get the book here



Craig Shallahamer's Blog

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.
Please—Out 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.

-------------------------------

A buffer is dirty when it does not match its associated block on disk. Any change to a buffer makes it dirty because it will no longer match the block on disk. Dirty blocks cannot be replaced, as this would overwrite an in-memory change that has not yet been written to disk. Once a database writer2 writes a dirty buffer to disk, the buffer and the on-disk block once again match, and the buffer becomes free.

A dirty buffer can be unpopular. Suppose a row is updated but no other process is interested in the buffer. Since the row changed, the block it is indeed dirty, but it's also not popular. Of course, there are popular dirty buffers3 as well. Simply repeatedly updating a row will ensure its buffer is both dirty and popular.

Figure 6-3 shows dirty buffers having a status of either xcur or write. I will detail current and consistent mode buffers in the upcoming section on cache buffer chains. The xcur status means a process has changed a current mode buffer's status to this status, and processes can now update rows in the buffer, although the rows are still subject to other conditions, such as row-level locking. My tests demonstrate an exclusive mode does not prevent multiple users from changing multiple rows in the same buffer; it simply signifies the current mode buffer can be changed. This becomes critical in a Real Application Clusters (RAC) environment, where there can be multiple shared current mode buffers (mode of scur), but only one exclusive current mode buffer in the entire RAC database.

©2009, 2010 by Craig Shallahamer. This is copyrighted material.
Please—Out 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.


Know what's important before it's too late!

OraPub's
Performance Training

is like no other...





More Class Pics...
Get student testimonials!