On the optimal nesting order for computing N-relational joins
ACM Transactions on Database Systems (TODS)
Optimization of large join queries
SIGMOD '88 Proceedings of the 1988 ACM SIGMOD international conference on Management of data
Randomized algorithms for optimizing large join queries
SIGMOD '90 Proceedings of the 1990 ACM SIGMOD international conference on Management of data
Rapid bushy join-order optimization with Cartesian products
SIGMOD '96 Proceedings of the 1996 ACM SIGMOD international conference on Management of data
Iterative dynamic programming: a new class of query optimization algorithms
ACM Transactions on Database Systems (TODS)
Access path selection in a relational database management system
SIGMOD '79 Proceedings of the 1979 ACM SIGMOD international conference on Management of data
Optimizing Large Join Queries Using A Graph-Based Approach
IEEE Transactions on Knowledge and Data Engineering
Using EELs, a Practical Approach to Outerjoin and Antijoin Reordering
Proceedings of the 17th International Conference on Data Engineering
Optimization of Nonrecursive Queries
VLDB '86 Proceedings of the 12th International Conference on Very Large Data Bases
Measuring the Complexity of Join Enumeration in Query Optimization
VLDB '90 Proceedings of the 16th International Conference on Very Large Data Bases
Fast, Randomized Join-Order Selection - Why Use Transformations?
VLDB '94 Proceedings of the 20th International Conference on Very Large Data Bases
A New Heuristic for Optimizing Large Queries
DEXA '98 Proceedings of the 9th International Conference on Database and Expert Systems Applications
The Volcano Optimizer Generator: Extensibility and Efficient Search
Proceedings of the Ninth International Conference on Data Engineering
Heuristic and randomized optimization for the join ordering problem
The VLDB Journal — The International Journal on Very Large Data Bases
Sing the truth about ad hoc join costs
The VLDB Journal — The International Journal on Very Large Data Bases
Online Cycle Detection and Difference Propagation: Applications to Pointer Analysis
Software Quality Control
VLDB '06 Proceedings of the 32nd international conference on Very large data bases
Optimal top-down join enumeration
Proceedings of the 2007 ACM SIGMOD international conference on Management of data
Dynamic programming strikes back
Proceedings of the 2008 ACM SIGMOD international conference on Management of data
Dimension table driven approach to referential partition relational data warehouses
Proceedings of the ACM twelfth international workshop on Data warehousing and OLAP
Using similarity distance for performance prediction of the query optimization process
Proceedings of the Sixth International Workshop on Testing Database Systems
Hi-index | 0.00 |
Join ordering is one of the most important, but also most challenging problems of query optimization. In general finding the optimal join order is NP-hard. Existing dynamic programming algorithms exhibit exponential runtime even for the restricted, but 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.