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 hashing structures described in Table 3-1 will give you an idea of just how large Oracle's CBC memory structures can be. For example, the Oracle9i production database contains 1.4 million chains, not 10 chains as shown in Figure 3-5. These are massive memory structures! To reduce the likelihood that a process will be contending for a latch, based on the number of buffers the DBA set, Oracle created 8,192 CBC latches! While this may seem like a lot, each latch must still ensure controlled access to an average of 170 chains.
Table 3-1. Selected Oracle cache buffer chain attributes. All numbers are Oracle defaults, except the chosen block size and the chosen number of block buffers.
You can learn a lot by working through Oracle's general latching algorithm. Even at the highly abstracted view I'll walk you through, the benefit will last your entire DBA career. You will learn how latching appears in Oracle's wait interface, how and if CPU time is accounted for, why latch contention and CPU saturation are so common, and why increasing the instance parameter _spin_count is usually a very bad idea! So let's dig into the algorithm one step at a time.
©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.
|