Updates
Latest Tweet
What's New?
Check out for latest innovation, a computer based training video collection
Like this Page
Relational Database Index Design and the Optimizers Review by Dmitry Dvoinikov
A book of choice... or may be a book of SELECT ?
This is an exceptional book on how indexes work in a generic relational database. The authors only pay attention to the principles, not to any particular vendor and this is seldom seen.
The book takes a very pragmatic approach to speeding up SQL SELECTs, it's all about making SELECTs fast. One more thing to notice about this book is that authors talk about tables that contain tens of millions of rows and queries that could take hours (or forever) in the worst case. Compare this to some other SQL performance optimization books that talk about tens of thousands of rows. Sure there is a huge difference in approaches.
Now, why SELECTs could be slow ? Surprise, huge data volume plus limited hardware capacity. How to overcome this ? Surprise, by proper indexing. We all know that.
But ! What exactly a good index is, how to build a good index or improve an existing one, how to estimate the quality of an existing index, how to estimate the query execution time with this or that access path, how the optimizer chooses its ways, which predicates affect it's decisions in which way, how to monitor the database activity and determine what to improve, how indexes wear out with time - this book discusses in a very simple, clear and pragmatical way.
The book gives a clear view of the current state with indexing relational databases. It shows you the principles but does not give any rules of thumb, you still have to understand what you are doing and what are the implications, rather than blindly following the textbook.
And it seriously shifts the way you look at indexes, at least it was so in my case.
This is an invaluable book, but it should be accompanied with a good and very deep tuning guide for your own database of choice. If read alone, it leaves you empty handed, because you wouldn't know where to look in your own database. And if that other guide is not deep enough, it would be a useless companion.
An amazing book for a thinking DBA.