Here’s a review of Jonathan Lewis’ new book that I’ve just posted on amazon.co.uk
Here is your review the way it will appear:
An Exceptional Book
Reviewer: Doug Burns from EDINBURGH, Lothians United Kingdom
It’s my favourite Oracle book of the many I’ve read (apologies to Tom Kyte) and I’m not expecting it to be surpassed any time soon.
Despite being a fan of Jonathan’s work, I probably didn’t like Practical Oracle 8i as much as others did. Not because it wasn’t a great book in parts but because it didn’t hang together properly for me. I felt the same way about Steve Adam’s Oracle Internals book – great material but I wasn’t sure how well it worked as a book.
This book is different. It takes a complex and essential component of the Oracle architecture and teaches it from the basics up to the complex using an elegant tutorial style. Jonathan doesn’t stint on the deep detail that’s necessary to understand the subject but he doesn’t baffle you with science either. You might need to read it a little more slowly and carefully than you would some third-party Oracle books, and play around with the plentiful small examples, but that’s because you’re getting enough information to justify the purchase cost (and much more) and you know when you get to the end that you’ll understand the subject *properly*. With that understanding, it’ll be much easier to work out why the CBO is doing something that you’ve never seen it do before. As always with technical subjects, everything springs from the fundamentals.
No matter what your involvement with Oracle is, you can not avoid the optimiser. Have you ever watched Oracle consultants, contractors, developers or DBAs deciphering execution plans as best they can and then flailing around trying out different solutions until they get lucky? (and then everyone thinks they’re a magician!) More honestly, how often do you find yourself deciphering execution plans as best you can and then flailing …. (you get the picture). One of the reasons why people struggle with the CBO is that Oracle’s documentation of the CBO isn’t great. I love Oracle documentation in general but I think Jonathan’s book blows any Oracle CBO documentation out of the water. (As he highlights in the book, the CBO is difficult to document well because it’s a constantly moving target.) I bet you there’ll be plenty of people in Oracle Support with this book on their desk!
If you think you’re a serious Oracle professional, you should own this book, devour the contents and experience plenty of those moments when the lights go on and you think – ‘Oh, right, so *that’s* why it does that’. That includes DBAs who’ll learn something new about how their decisions on free lists, block sizes and so on can affect application performance. I can’t imagine that there is anyone out there who won’t learn something new from this book and you’ll finally be able to take a *structured approach* to solving CBO problems instead of just guessing.
Remember when not many people had read Tom Kyte’s ‘Expert One-on-One’ book and you were at a distinct advantage because you had? Yet you still felt you had to spread the word because it was so good? Now that many more people have read Tom’s book, the penny is starting to drop about bind variables, the dangers of database independent applications and so on.
That’s what this book is like. An absolute classic and the only book you’ll ever need to understand the cost based optimiser (apart perhaps for Volumes Two and Three that will cover more specialised subjects).
Buy it – you won’t be disappointed.
Frankly, it could have been a lot longer and more fawning because I found myself constantly thinking – ‘and, do you know what else is great about this book …) but I was concerned that people might start to think I want to have his babies or something. Best try to maintain a little dignity! Seriously, folks, this book is a model of excellence in Oracle writing. Buy it or you’ll regret it later …
Thanks for the excellent review, Doug. I just placed an order, not just on the strength of your review but I liked Practical Oracle 8i and have heard JL present at UKOUG and thought he was excellent. I seem to remember that he did a neat trick of walking through a sheet of A4 paper using Origami.
I wonder that it neded 10 years for publishing a CBO based book. But now the waiting ends
Carl
I’ve ordered Tom and jonathan’s books as a combo from Amazon – can’t wait…but unfortunately I’ll have to as Jonathan’s is marked as shipping within 4-6 weeks – Well, saves my wife going out and buying me a christmas pressie!
I’ve been that contractor…the one who tried different things til I got lucky…and I’d like to change that over the next year or so…JL book will be a good start.
Carl,
I think it needed someone prepared to put in the extremely hard graft to understand the optimiser and Jonathan, as well as Wolfgang, have probably done as much of that as anyone.
Cheers,
Doug
Jeff,
The 4-6 weeks delivery is a real shame. I’m convinced it’s because demand has been so high because they definitely had them available for delivery in a day or two when the book first appeared.
As for flailing around – I think everyone’s done that to a degree. What’s more important is the determination to aim for a better approach.
Trust me – you’ll love the book. It’ll move the whole Oracle community forward in their understanding in my opinion. I was genuinely excited when I was reading the first few chapters. Possibly sad, but true.
On a seperate note, I’m mucking about with my new server at home and I’m getting ready to dip into Orion, thanks to your blog that alerted me to it.
Cheers,
Doug
“I’ve been that contractor…the one who tried different things til I got lucky…”
Jeff, That is brave of you to admit that. I have done that too but never had the guts to admit it.
Unfortunately there are many more out there who somehow have gotten into certain positions (management for eg), but think they are there because they ‘worked hard’.
Jeff,
bookpool.com shipped it to my door next day (here in the US).
Appendix A is amazing. JL certainly left room for the follow-up volumes, though.
You’ll be smacking yourself on the forehead with “so THATS why it did that” when you recall your horror stories of changes in app sql behavior when upgrading from 8.1.7 to 9.2.0.
My favorite item so far is with transitive closure with respect to query_rewrite_enabled in 9.2.
(forgot my blogger credentials)
Paul