Databases Reference
In-Depth Information
narrow the possibilities down to the most likely candidates, using heuristics (some of
which we've already touched upon) to guide the process, which will be explained in
Chapter 5 , The Optimization Process.
Summary
This chapter has covered a lot of ground in a relatively short space, but by now you
should have an understanding (or at least an appreciation) of the concepts we're going to
tackle in more detail in the following chapters.
We've been introduced to the fundamental operations of the SQL Server Query
Optimizer, from parsing the initial query to how the Query Optimizer tries to find
the best possible execution plan for every query submitted to SQL Server. We've also
looked at the complexity of the optimization process, including the challenges it faces in
exploring the potentially vast search space and accurately estimating cardinality and the
cost of candidate execution plans.
As a result of the research that has gone into solving some of those challenges, the Query
Optimizer implemented in SQL Server is based on the extensible Cascades Framework
architecture, which facilitates the addition of new functionality to the query optimizer,
including new operators and transformation rules. Chapters 2 and 5 are going to go into
more detail regarding both of those, and the section on how to read and understand
execution plans will also have given you the basic skills to be able to find information
regarding physical operators. Finally, we touched upon the problem of finding an
efficient join order in a multi-join query, which is still a fundamental challenge in
query optimization.
Now that we've had a first look at the concepts involved, we can start getting into the real
details of how the SQL Server Query Optimizer works.
Search WWH ::




Custom Search