Book Description
Improve the performance of relational databases with indexes designed for today's hardware
Over the last few years, hardware and software have advanced beyond all recognition, so it's hardly surprising that relational database performance now receives much less attention. Unfortunately, the reality is that the improved hardware hasn't kept pace with the ever-increasing quantity of data processed today. Although disk packing densities have increased enormously, making storage costs extremely low and sequential read very fast, random reads are still painfully slow. Many of the old design recommendations are therefore no longer valid-the optimal point of indexing has come a long way. Consequently many of the old problems haven't actually gone away-they have simply changed their appearance.
This book provides an easy but effective approach to the design of indexes and tables. Using lots of examples and case studies, the authors describe how the DB2, Oracle, and SQL Server optimizers determine how to access data, and how CPU and response times for the resulting access paths can be quickly estimated. This enables comparisons to be made of the various designs, and helps you choose available choices for the most appropriate design.
This book is intended for anyone who wants to understand the issues of SQL performance or how to design tables and indexes effectively. With this title, readers with many years of experience of relational systems will be able to better grasp the implications that have been brought into play by the introduction of new hardware./p>
Reviews From AMAZON.COM
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.
Diving deep into expert knowledge
Gold is heavy. If you are a student (or a professor) with no practical knowledge in real-life large database tuning, this book is quite heavy. It may not be the best for you. But, instead, if you are a hands-on professional, here you can find such knowledge that seldomly becomes published.
If you are a DBA who think you already read everything worth to know about indexing, don't miss this book.
The authors don't try to sell you any simplified tricks.
The book describes a solid methodology, how to diagnose the performance problems and how to do proactive and reactive tuning.
The text is dense, but it makes sense. The examples are clear.
In addition to the actual DBA work, the book builds up an idea of a quality assurance system. In principle, the software developers could be tought a reasonable set of rules-fo-thumb. The goal is to avoid the worst performance pitfalls.

ISBN:0471719994