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.
-------------------------------
With a single latch, serialization is ensured, but concurrency is severely limited. All it takes is one other process requesting the latch while it's being held for contention to result. In this example, simply adding one more latch could solve the problem. Scale this out quite a bit by having hundreds or thousands of processes requiring access to the CBCs, and you can see the potential exists for serious performance-limiting concurrency issues.
Fortunately, by default, Oracle creates thousands of CBC latches. While Figure 6-9 shows 3 latches, real Oracle systems will have at least 10,000 chains and 1,000 latches.
One way to look at the contention possibility is to calculate how many chains each latch protects. For example, if there are 10,000 chains and 1,000 latches, then each latch ensures serialization for 10 chains.
©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.
|