By Jonathan Lewis
When I was in Salt Lake City a few months ago, Barbara Matthews (one of the organisers of the SLC Oracle User Group) asked me for my “Top 10” books about Oracle.
I don’t normally do lists – and I don’t read many Oracle books – but Iggy Fernandez put the same question, slightly differently phrased, as part of a brief interview for the Northern California Oracle User Group magazine a few days later. So I thought I’d try to come up with a useful answer. This is Iggy’s phrasing of the question:
Let’s say that I’m a junior Oracle DBA and my manager offered to buy ten books on Oracle for me. Which books would you recommend?
Ten is a pretty big number, and I think you’d have to consider getting a couple of books that were tailored to the parts of Oracle used by the business (such as RAC, streams, and so on) but I’ll restrict myself to a fairly generic response – to the extent that some of the books aren’t even specific to Oracle.
For my first choice I’d try to claim a Kindle or Sony e-Reader as the first “book”. I haven’t used one in anger, and the Kindle isn’t even available in the UK, but the brief play I had with the e-reader left me keen to buy one. (Unfortunately the demo model in the shop was sealed in a tamper-proof frame and had no real books on it because someone had accidentally deleted all (100) books from its memory – so maybe I should be a little cautious about recommending it.)
The second choice(s) ought to be some Oracle manuals. I know you can get them in html or pdf form online (I prefer the pdfs with Acrobat indexing); but for simply reading (rather than reference) there’s nothing quite like a real book – and I don’t mean a stack of paper from a laser printer. My manuals of choice would be the Concepts Guide, the Database Admin Guide (Fundamentals) and the Performance Tuning Guide. I might pick the 9i versions (especially the tuning guide), rather than the 10g versions because some of the 10g manuals are getting to the stage where they lean too heavily on “how to use the OEM GUI”.
But if you’ve got a Kindle or eReader, you can probably load the entire set of pdf files for the last four versions of Oracle, and carry them all around at once ! So I’m not going to count any of the Oracle manuals towards my list of 10.
In no particular order, then, here are the other nine:
2) Tapio Lahdenmaki and Mike Leach: Relational Database Index Design and the Optimizers. The authors are better known in the DB2 world than the Oracle world, but the concepts and understanding needed to design good indexes are the same even when there are variations in vendor implementation. (For more details, check my review on Amazon)
3) Dan Tow: SQL Tuning. This is the book that does for SQL Tuning what Tapio Lahdenmaki and Mike Leach do for understanding indexes. There is a way to think through the problems of data access – that method is going to help you find the best execution plan and work out what indexes your system needs.
4) Toon Koppelaars and Lex de Haan: Applied Mathematics for Database Professionals. This is a book that many might think too theoretical for a practising DBA – but if you don’t have some idea of why the relational model is a “good thing” then you can’t do your job properly. This book may not be a direct help to you in your work, but it may help you to appreciate what you can achieve with the Oracle software. (For more details, check my review on Amazon)
5) Tom Kyte: Expert Oracle Database Architecture. For a wealth of information about a wide range of the Oracle technology and how best to use it. This book tells you a lot about what Oracle can do, but also shows you, by the way it’s written, how to extend your knowledge into new areas. If I were allowed a longer list, I would also include Tom’s Expert One-on-one Oracle.
6) Jonathan Lewis: Cost Based Oracle – Fundamentals. I know that it’s my own, but it is the best book you’re going to find about how the optimizer works, and if you understand the core features of the optimizer you’ll find it much easier to solve problems with slow SQL. (And if I were allowed a longer list I probably would include Practical Oracle 8i)
7) Christian Antognini : Troubleshooting Oracle Performance. A recent release that contains a huge amount of information about how to identify and address performance problems. I think I’d probably rate this as the top Oracle tuning book on the market at present (UK link) (US link).
8 ) Cary Millsap and Jeff Holt: Optimizing Oracle Performance. There are a couple of key points about Oracle performance that are rarely stated as clearly as they are in this book. One is the focus on addressing the users’ complaints, the other is the impact of concurrency. It won’t be casual reading for everyone – but the chapter on queueing theory is a must-read for all DBAs.
9) Recovery. If you’re a DBA, then the most important job you’ll ever do is to make sure that you can recover the database quickly after a disaster – and if you’re lucky you’ll never have to do it. There’s probably a good book out there somewhere, but I’ve never had any need to go looking for it. If there is one, then every DBA should have a copy and be made to practise. The difficulty with recovery is that the bits you need to cover well are site dependent, and no one book will tell you all you really need to know about the way you end up doing things for your site.
10) “X”: One of my pet theories is that people learn more by seeing things go wrong, rather than being told what things look like when they are going well. So all DBAs should be given at least one really bad book about Oracle and told to compare the clarity of writing, quality of explanation, and method of teaching with a good book so that they can learn to recognise suspect material. There are plenty of bad books on the market – fortunately I haven’t seen enough of them to be able to give you a “bottom 10″ list.