|
The “Rules-of-Thumb” Myth
Proponents of the “No Rules-of-thumb (heuristics) allowed” myth say that if any decision rule can be shown to be false, in even a single case, it is invalid. They believe that the scientific method is the only way to effectively approach an Oracle performance problem, and all broad-brush tuning (changes to system-wide parameters, using faster hardware) are unscientific, non-elegant and offensive.
Empirical DBA? Might as well call them a "medium", because what you suggest here is merely "Database Meets Psychic Friends Network". Unless you analyze, test, analyze again (you know the drill) you aren't solving (or preventing) a problem.
The Empirical DBA Response
As Oracle technology becomes more available on personal computers, a movement has arose where “Oracle Research Scientists” adopted the mantra “Prove it” and started publishing SQL*Plus scripts as evidence of how Oracle actually behaves. The heuristic approach has been codified inside the Oracle 10g advisory tools (Automatic Memory Manager, SQLTuning advisor, Oracle Data Mining), and heuristic techniques are well-proven and accepted within the scientific community.
The Empirical professionals note that it is very difficult to document a transient performance issue, and impossible to set-up any repeatable “proof” of the behavior without disclosing the client’s schema and table data. In sum, the Empirical DBA says that you often have to rely on end-user testimonials and “trust your source”.
The “Script Kiddie” Myth
The Empirical DBA will tell you the foundation of science is not in finding “proofs” of Oracle behavior, but in observing the real-world. With math you can prove that for a given gravity well, a feather and a lead ball will accelerate at the same rate toward the center of that gravity well. In the real world we know the affects of the surface area to weight and resistance will result in widely different rates of acceleration. The successive refinement of their heuristic rules form the experiential basis for “expert” Oracle tuning as noted in the book “Oracle Silver Bullets”. Proponents of the “Script Kiddie” myth say that performing Oracle database testing in a single-user environment can lead to disaster.
The Research DBA Response
The research DBA says that Oracle software behaves the same in all environments, and that their proofs offer valuable insights into the behavior of the Oracle software.
The author of that book was smoking something funny. You have my book -- you see when I say something,
I show all factors involved, I show the proof, I show the hard numbers and I make it so you can reproduce it
The single-user "proofs" are quite factual for what they are, but what they are (single-user, single CPU, single disk, no concurrent access) often does not describe real-world behavior. This from Robin Schumacher, author of “Oracle Performance Troubleshooting”: http://www.rampant-books.com/book_2003_1_perf.htm
It's fine for DBAs to perform trials and postulate theories as long as they realize those theories may crash and burn in the real world. Or, as someone well said a while back, "watch out when a beautiful theory meets a brutal gang of facts."
So, what do we make of this? It’s clear that both groups believe in the value of testing and benchmarks, but they do it in very different ways.
There is a big difference between a benchmark and a SQL*Plus “proof” and the real-world of high concurrent transactions makes most performance proofs useless. For example, I published the results of my benchmark study on how Solid-state disks (SSD) are faster then traditional disks in a 135-page justification in the code depot of my book “Oracle Solid State Disk Tuning”. An Oracle benchmark uses realistic data volumes and realistic user scenarios, proofs are a valuable tool.
Remember, unless luckily placed, a single shotgun pellet is rarely fatal, but the combined effect of the entire content of a shotgun shell is nearly always fatal. Volume does make a difference, be it users, data or both!
Back in the days before load testing software, we used to simulate system load by paying the staff to stay late in the evenings.
I used a “cheerleader” bullhorn and I would get everyone to set-up the transaction, turn-on tracing, and then I would do a 3-2-1-“Go” countdown to get valid performance statistics.
Conclusion
Today we see the widespread use of load testing tools instead of SQL*Plus scripts, which allow you to simulate the effect of hundreds of people conducting a transaction at the same time. In fact, many tools let you take that single-user script and then multiple its affects many times, thus making it far more valuable in predicting real Oracle performance.
While single-user proofs validate how Oracle reacts in a single-user environment rely on real-world benchmarks whenever possible for decisions involving multi-user systems. |
|