Database Reference
In-Depth Information
and digest multiple sets of widely varying rules and recommendations, we are
using a single common approach that is applicable to all relational products. All
“genuine” relational systems have an optimizer that has the same job to do; they
all have to scan indexes and tables. They all do these things in a startlingly similar
way (although they have their own way of describing them). There are, of course,
some differences between them, but we can handle this with little difficulty.
It is for exactly the same reason that the audience for which this topic is
intended is, quite literally, anyone who feels it is to his or her benefit to know
something about SQL performance or about how to design indexes effectively.
Those having a direct responsibility for designing indexes, anyone coding SQL
statements as queries or as part of application programs, and those who are
responsible for maintaining the relational data and the relational environment will
all benefit to a varying degree if they feel some responsibility for the performance
effects of what they are doing.
Finally, a word regarding the background that would be appropriate to the
readers of this topic. A knowledge of SQL, the relational language, is assumed;
fortunately this knowledge can easily be obtained from the wealth of material
available today. A general understanding of computer systems will probably
already be in place if one is even considering a topic such as this. Other than
that, perhaps the most important quality that would help the reader would be a
natural curiosity and interest in how things work—and a desire to want to do
things better. At the other extreme, there are also two categories of the many
people with well over 20 years of experience in relational systems who might
feel they would benefit; first, those who have managed pretty well over the
years with the detailed rule topics and would like to relax a little more by
understanding why these rules apply; second, those who have already been using
the techniques described in this topic for many years. The reason why they may
well be interested now is that over the years hardware has progressed beyond
all recognition. The problems of yesteryear are no longer the problems of today.
But still the problems keep on coming!
We will begin our discussion by reflecting on why, so often, indexing is still
the source of so many problems.
INADEQUATE INDEXING
Important Note
The following discussion makes use of some concepts and terminology used in rela-
tional database systems and disk subsystems. If the reader has little or no background
in these areas, this chapter may be read at this time at a superficial level only, bypass-
ing some of the more technical details that are provided to justify the statements and
conclusions made. More detail on these areas will be found in Chapters 2, 3, and 4.
Search WWH ::




Custom Search