The following keywords have been assigned to this publication so far. If you have logged in,
you can tag this publication with additional keywords.
If you log in you can tag this publication with additional keywords
A publication can refer to another publication (outgoing references) or it can be referred to by other
publications (incoming references).
If you log in you can add references to other publications
A publication can be assigned to a conference, a journal or a school.
Join ordering is one of the most important, but at the same time the most challenging problems of query optimization. Finding the optimal join order is NP-hard in general, and existing dynamic programming algorithms exhibit exponential runtime even for the restricted, practically highly relevant class of star joins. Therefore, it is infeasible to find the optimal join order when the query includes a large number of joins. Existing approaches for large queries switch to greedy heuristics or randomized algorithms at some point, which can degrade query execution performance by orders of magnitude.
We propose a new paradigm for optimizing large queries: when a query is too complex to be optimized exactly, we simplify the query's join graph until the optimization problem becomes tractable within a given time budget. During simplification, we apply safe simplifications before more risky ones. This way join ordering problems are solved optimally if possible, and gracefully degrade with increasing query complexity.
This paper presents a general framework for query simplification and a strategy for directing the simplification process. Extensive experiments with different kinds of queries, different join-graph structures, and different cost functions indicate that query simplification is very robust and outperforms previous methods for join-order optimization.