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.

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

Some would say instrumentation is the best performance statistics gathering approach, but others would say periodic sampling is the best. After all, nearly all third-party tools rely on polling, which is sampling. Just as Iron Man's Tony Stark would say, "Is it too much to ask for both?" And this is exactly what Oracle has done.

The classic performance view v$sysstat is based on instrumentation, since when a database call completes, the respective statistics are updated. The wait interface is clearly an instrumentation approach, with the additional gettimeofday system calls inserted into Oracle's kernel code. The time model views are based on a combination of instrumentation (since the view is not updated if a session is in the middle of a wait) and sampling due to the frequent getrusage calls. But with the introduction of Oracle's active session history, or ASH for short, Oracle has clearly implemented a very aggressive statistical sampling collection strategy. So Oracle has indeed begun using both instrumentation and sampling.

While the core session-level performance views (v$sesstat, v$session_event) have served us well, Oracle knows more accurate metrics are required to support its vision of a self-adjusting, optimum-performing system. As I have mentioned, two glaring problems exist. First, when a session disconnects, all session-level details are gone. While the data is rolled up into v$sysstat and v$system_event, the session-level details, which we sometimes need, vanish. The other problem, specifically with v$sesstat, is the statistics may not be updated until after the database call has completed. This can muddy any performance analysis when long-running SQL is involved. Oracle solves both of these problems with the introduction of ASH.

©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!