When I wrote Practical Oracle 8i, I said in the foreword that “if you write a technical book
about Oracle, then it will be out of date by the time you’ve finished writing it.” Addison-Wesley
published the book about the same time that Larry Ellison announced the official release of
Oracle 9i. Three weeks after publication, I got the first e-mail message asking me if I had plans
for a 9i version of the book.
From that day onwards, I have resisted all requests for an “upgrade,” on the basis that (a) it
was far too much hard work, (b) I would have to spend a couple of years using Oracle 9i before
I thought I could put some useful new information into a book, and (c) it would still be just the
same book with a few small changes.
So there I was: I started writing in September 2003 (yes really, 2003; it took me 22 months
to write this volume), exactly four years after I decided to write Practical Oracle 8i. (Remember
September 1999, when nobody wanted to employ an Oracle specialist unless they could debug
40-year-old COBOL?) I had had enough exposure to Oracle 9i to make it worth writing a new
book. Of course, in those four years there had been several upgrades to Oracle 8i (finishing at
220.127.116.11), two major releases of Oracle 9i, and, as I started writing, Oracle 10g was launched at
Oracle World. I was about ready to write Practical Oracle 9i—just too late.
In fact, just as I finished writing this book (in June 2005), the Linux port for 10g Release 2
was made available on OTN! So the first thing you can do with this book is to start running my
test cases against 10gR2 to see how many things have changed.
Instead of producing an upgrade for Practical Oracle 8i, I’ve embarked on a project to write
up all I know about cost-based optimization. It sounded like a very easy project to start with—
I can talk for hours about things that the optimizer does, and why it does them; all I had to do
was write it down.