When I sat down to write this foreword for the Second Edition of Troubleshooting Oracle Performance (TOP), the first thing I did, after reading the draft chapters, was go back to the foreword I wrote for the first edition to see how much it needed changing. Obviously, there were references to chapter numbers that needed to change, but to my great surprise I discovered that I had failed to make a couple of important points about why this book should be required reading for all aspiring Oracle professionals. Being allowed to revise the foreword allows me to address those points.
The Internet carries a lot of information about Oracle, but it’s highly fragmented and desperately in need of collation and cohesion. In fact, many of the books published about Oracle suffer from the same problem—they collect many bits of information together but don’t supply any form of cohesive narrative that would allow the reader to grasp a topic in a way that can become a launching point for subsequent learning and understanding. Even the Oracle manuals suffer from the same problem (though to a lesser degree). I’ve often made the point in my presentations on troubleshooting that your reading should include key manuals from Oracle’s documentation set – the Oracle Database Concepts manual, the Oracle Database Administrator’s Guide, and the Oracle Database Performance Tuning Guide – and that there will be things in any one of those manuals that you won’t really understand until you read the other two. A key feature of TOP is the way it structures the information to avoid the historical problem—it tells us what we are trying to achieve, why we want to achieve it, and then how to achieve it.
Sometimes this structure is astonishing in its simplicity. I was particularly struck at one point by the titles of three consecutive chapters. Ignore, for the moment, that the content of the chapters was well worth reading. The titles alone were a startlingly clear presentation of a concept that rarely gets recognized as the first question of troubleshooting:
- Chapter 3: Analysis of Reproducible Problems
- Chapter 4: Real-time Analysis of Irreproducible Problems
- Chapter 5: Postmortem Analysis of Irreproducible Problems
Did you realize that there are only three types of problems, and the strategy you use to solve a problem depends on which of the three classes it belongs to? The fundamental source of the data you can use to solve the problem is the same in all cases, but the availability and granularity of some of that data changes over time. Recognizing this grouping is the first step in a methodical approach to solving problems.
This pattern of collating bits of information and presenting a cohesive picture of what’s possible and how to achieve results runs through the whole book. Chapter 6, for example, pulls together a long list of the transformations that Oracle can perform when optimizing a query; Chapter 13 gives a surprisingly long list of all the different ways in which partition-based operations can appear in execution plans.
By the time you’ve finished reading this book, you will probably find that you already knew a lot more than you realized, but you will also have learned a lot more about what you knew because all the pieces have been pulled together, the gaps have been filled, and the information has been restructured through Christian’s knowledge and insights.
Jonathan Lewis is well known in the Oracle world. He has worked with the Oracle RDBMS for more than 26 years, written three books about it (two published by Apress), and traveled to more than 50 different countries to supply his skills at troubleshooting, tuning, and design. He is based in the UK, conveniently close to two major airports and one international train station.
I think the best thing that has happened to Oracle performance in the past ten years is the radical improvement in the quality of the information you can buy now at the bookstore.
In the old days, the books you bought about Oracle performance all looked pretty much the same. They insinuated that your Oracle system inevitably suffered from too much I/O (which is, in fact, not inevitable) or not enough memory (which they claimed was the same thing as too much I/O, which also isn’t true). They’d show you loads and loads of SQL scripts that you might run, and they’d tell you to tune your SQL. And that, they said, would fix everything.
It was an age of darkness.
Chris’s book is a member of the family tree that has brought to us, …light. The difference between the darkness and the light boils down to one simple concept. It’s a concept that your mathematics teachers made you execute from the time when you were about ten years old: show your work.
I don’t mean “show and tell,” where someone claims he has improved performance at hundreds of customer sites by hundreds of percentage points [sic], so therefore he’s an expert. I mean show your work, which means documenting a relevant baseline measurement, conducting a controlled experiment, documenting a second relevant measurement, and then showing your results openly and transparently so that your reader can follow along and even reproduce your test if he wants to.
That’s a big deal. When authors started doing that, Oracle audiences started getting a lot smarter. Since the year 2000, there has been a dramatic increase in the number of people in the Oracle community who ask intelligent questions and demand intelligent answers about performance. And there’s been an acceleration in the drowning-out of some really bad ideas that lots of people used to believe.
In this book, Chris follows the pattern that works. He tells you useful things. But he doesn’t stop there. He shows you how he knows, which is to say he shows you how you can find out for yourself. He shows his work.
That brings you two big benefits. First, showing his work helps you understand more deeply what he’s showing you, which makes his lessons easier for you to remember and apply. Second, by understanding his examples, you can understand not just the things that Chris is showing you, but you’ll also be able to answer additional good questions that Chris hasn’t covered—like what will happen in the next release of Oracle after this book has gone to print.
This book, for me, is both a technical and a “persuasional” reference. It contains tremendous amounts of fully documented homework that I can reuse. It also contains eloquent new arguments on several points about which I share Chris’s views and his passion. The arguments that Chris uses in this book will help me convince more people to do the Right Things.
Chris is a smart, energetic guy who stands on the shoulders of Dave Ensor, Lex de Haan, Anjo Kolk, Steve Adams, Jonathan Lewis, Tom Kyte, and a handful of other people I regard as heroes for bringing rigor to our field. Now we have Chris’s shoulders to stand on as well.
Cary Millsap is chief executive of Method R Corporation, a software performance company. He wrote Optimizing Oracle Performance with Jeff Holt in 2003, which earned Cary and Jeff the Oracle Magazine 2004 Author of the Year award. Cary is also the author of Th e Method R Guide to Mastering Oracle Trace Data. You can fi nd Cary at method-r.com and carymillsap.blogspot.com.