Physical Database Design: The Database Professional's Guide to Exploiting Indexes, Views, Storage, and More

Give no decision till both sides thou st heard.
Phocylides (6th century B.C.)
The B+tree, as we described in detail in Chapter 2, has evolved to become the most popular indexing method for relational databases, replacing many other methods used in the past. However, the task of index selection for a database is still a complex one, walking the fine line between art and science. Decisions still must be made re-garding which keys and non-key attributes to index, equality vs. range queries, composite indexes with many keys, and index main-tenance. This chapter helps clarify these decisions.
Indexes are one of the primary tools used in database management systems (DBMSs) to deliver high performance (i.e. low response time) for the wide range of queries typically requested of these sys-tems. Indexes have a wide range of purposes in terms of performance: fast lookup for specific data and ranges of data, uniqueness enforcement, and so on.. After a database has gone through the logical design of the schema to make sure it is clean and coherent, it is implemented using a commercial system. Soon after that point, when the system has been running and monitored, performance tuning is often done to increase the database system throughput and reduce the database response time, including service time and queuing delays, for a set of transactions queries and updates. The most direct way to achieve these improvements is to find and eliminate bottlenecks in the system resources that occur during the execution...