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.
-------------------------------
Oracle-focused solutions center on reducing redo generation and ensuring the log writer background process is writing efficiently. We want to make sure that when the log writer background process takes the time to issue a write request, it pushes down a large batch of redo. It is much more efficient to perform a single 1MB IO write than to repeatedly perform 512 writes of 2,048 bytes.
As I mentioned in the previous section about application-focused solutions, seriously consider finding creative ways to implement Oracle's global temporary tables. If the redo is associated with a restartable batch process, there is a good possibility of success. Using global temporary tables can cut redo generation by 50%, substantially reducing Oracle's overall IO requirements. This alone could solve the log file parallel write problem.
From a more Oracle internals perspective, delaying log writer background process writes so each write will be a full 1MB IO call will maximize log writer efficiency. Based on what I've said, you're probably already thinking about some of these options:
©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.
|