Query optimization (the problem of efficiently identifying a good, though not necessarily the best, evaluation plan for a given query) is a fundamental problem in databases, especially given the complexity of decision support queries, and the vast (orders of magnitude) difference between the performances of good and the not-so-good evaluation plans.
A very large number of query optimization techniques have been proposed in the literature, but much remains to be accomplished in understanding:
It is rare to find a principled query optimization technique that complements existing optimization techniques, is easy to integrate into an optimizer, and does not dramatically increase the search space (and hence the query optimization time). This paper describes such a technique.
The interesting observation made by Levy et al. in this paper is that the benefits of predicate push-down in SQL query optimization can be considerably enhanced if the push-down phase is preceded by a pull-up phase. In this way, in particular, predicates pulled up from one query block (such as a subquery or view) in a multi-block SQL query can be pushed down into a different query block (hence the name predicate move-around). The key insights developed in this paper are that:
The simplicity and utility of the ideas developed in this paper makes it worthwhile reading for anyone interested in the subject of query optimization in databases.
[Full Disclosure: The authors of this paper are former colleagues and/or former co-authors. However, this has not affected my views on the paper.]
Copyright © 2000 by the author(s). Review published with permission.