Book Recommendations

When I teach Oracle courses, one of the most common questions from attendees was 'What books about Oracle would you recommend?' (Maybe I should worry about my teaching skills!) Many third party Oracle books are disappointing, but some are excellent, If you can make the effort to read one or more of these, you'll be rewarded with genuine insights and accurate information from true database experts. This is a very personal selection but one characteristic all of these books share is that the writing quality is high which makes them all very readable.

The first book that I always recommend used to be the Oracle Server Concepts manual, but I think I've found an even better starting point that isn't Oracle-specific - Chris Date's Database In Depth from O'Reilly. Although I've read a number of Chris' articles on dbdebunk and I had the pleasure of attending one of his seminars in Edinburgh, I've found this book more digestable. It's still rigorous, but I love the way that he's taken what some feel is a slightly abstract academic subject and made it sing (in my ears at least). There's still a little bit of :-

"Let relations r and s have attributes X1, X2 ...."

but I've found that the surrounding text makes it more bearable (for me).

I think this is a first class book and thoroughly relevant to real-world database systems. Even if you don't agree with all of it's content you will be in a better position to state why you disagree! If you already have some of Chris' lengthier and more academic texts, maybe this book won't add anything to your knowledge, but if you've never read one this would be a good place to start.

The next recommendation is the Oracle Concepts manual. Yes, the one that comes free with Oracle. I've linked to the Oracle 10.2 version here, although there's a new version for each version of the server. If everyone who worked on Oracle systems took the time to sit down and read this book, then the quality of Oracle systems would improve substantially. (In fact, re-reading it is on my to-do list.) It's detailed, usually accurate, and concentrates on how Oracle works. It's not a detailed hacker's trawl through tuning parameters or the intricacies of which version of the database contains which bugs, but imho, all of that information is next to useless if you don't even have a proper grasp of the basics. It costs nothing to buy, is available online and should be the first Oracle-specific book that you read.

When I first read it, Expert One-on One: Oracle was the best book of it's kind. Written by Tom Kyte, host of asktom.oracle.com, it is ostensibly aimed at developers but has a wealth of information for DBAs too. Although it's monstrous in size, the solid structure and beautifully clear writing style makes it an easier read than you might think at first sight. It's primarily based on Oracle 8i, but the subject matter is so fundamental, much of it can be applied to any version. Tom's angle is that you shouldn't treat Oracle as a 'black-box'. Amen!!!

However, it's worth noting that a multi-volume follow-up is now available, or at least the first volume is. Expert Oracle Database Architecture: 9i and 10g Programming Techniques and Solutions (quite a mouthful) isn't a book I've read yet because I'm still working my way through a small pile, but I have every reason to believe it'll be excellent. As should be obvious from the title, it covers more recent versions of Oracle and if you want to know more about the contents there are various discussion links on the right hand side of the AskTom home page.

As well as writing some of the best technical papers and user conference presentations, Jonathan Lewis has written two excellent books. The first is Practical Oracle 8i. This is a pretty good book all round, but I absolutely love Chapter 1 - 'What is Oracle?' - for the first class discussion of redo and rollback it contains. Don't be fooled by the title. Like all of the best books, there's useful information here, regardless of the version you're working with.

Jonathan's excelled himself, though, with the publication of Cost Based Oracle: Fundamentals. It's no exaggeration to describe this book as a masterpiece. It even makes other experts slack-jawed with wonder and respect (I've seen them). It is the first book in a planned three volume effort to describe the workings of the Cost Based Optimiser. It's not the easiest read in the world because despite being well written it's information-dense but if you take it slowly and carefully, you'll understand far more about the optimiser than I ever imagined I could know. Remember, 'Fundamentals' in this context means foundations, not that this is a 'Dummy's Guide' to the CBO. In a word, wonderful.

Oracle Insights: Tales of the Oak Table is a compendium of chapters by different members of the Oak Table network containing a wealth of experience. You can read a full review on my blog here.

Any book that combines a distillation of the information that you might acquire by working with Oracle for many years with an index entry for 'Chocolate Teapots' has to be recommended. Oracle Design is that book, co-authored by Dave Ensor and Ian Stevenson. It's a little difficult to categorise because although the title indicates it's for Database Designers, it contains the sort of real-world knowledge that every DBA and developer should have. There is also an Oracle 8 supplemental publication, both from O'Reilly.

The first decent Oracle book that I read was O'Reilly's Oracle Performance Tuning - otherwise known as 'the Bee book', because of the Bees on the front cover. It's on the second edition now and has become a little bloated in the process but is still over five years old, which means that it doesn't cover any new features and has some old-fashioned views on some subjects (eg Segment-level Fragmentation, tuning using ratios etc.) It merits a mention here for being the first decent attempt at a performance tuning guide.

However, it's an indication of how far the art and science of Oracle performance tuning has travelled in under a decade that I wouldn't really recommend the bee book any more, but two other marvellous books that are perfect companions. Optimizing Oracle Performance, by Cary Millsap and Jeff Holt is the purist's performance tuning book. It's roughly split into two or three sections. The first, which wasn't so enjoyable personally is an excellent discussion of performance tuning approach. The reason I didn't enjoy it was because I knew most of the material already and assumed that it was obvious, but I've changed my mind over time and realised that there's a lot of mis-guided performance tuning activity in the industry and many people who should read this book and learn what performance tuning is. Even if you understand the correct approach, the latter parts of the book go into more technical detail about how to use Oracle's tracing capabilities. If I had a slight criticism, it's strength is in dealing with the detail of how to gather high-quality information and it's weakness is that it lacks a practical perspective explaining what you might deduce from the information and what steps you'd take to improve things. (There are a few case studies near the end, but I would liked to have seen more.)

However, those aspects are well dealt with in Oracle Wait Interface: A Practical Guide to Performance Diagnostics and Tuning by multiple authors. I usually don't get along with Oracle Press books, but this is much better than most and a genuinely impressive attempt to make performance tuning accessible to relative novices. I personally prefer the purity and depth of the Millsap/Holt book but I'm sure others will prefer the practical 'how to' approach of the latter.

Recommended Books