The EXODUS optimizer generator
SIGMOD '87 Proceedings of the 1987 ACM SIGMOD international conference on Management of data
Grammar-like functional rules for representing query optimization alternatives
SIGMOD '88 Proceedings of the 1988 ACM SIGMOD international conference on Management of data
Measuring the complexity of join enumeration in query optimization
Proceedings of the sixteenth international conference on Very large databases
SIGMOD '91 Proceedings of the 1991 ACM SIGMOD international conference on Management of data
Query optimization for parallel execution
SIGMOD '92 Proceedings of the 1992 ACM SIGMOD international conference on Management of data
Counting trees in a graph is #P-complete
Information Processing Letters
IBM Systems Journal
Fundamental techniques for order optimization
SIGMOD '96 Proceedings of the 1996 ACM SIGMOD international conference on Management of data
Outerjoin simplification and reordering for query optimization
ACM Transactions on Database Systems (TODS)
Efficient mid-query re-optimization of sub-optimal query execution plans
SIGMOD '98 Proceedings of the 1998 ACM SIGMOD international conference on Management of data
Microsoft index turning wizard for SQL Server 7.0
SIGMOD '98 Proceedings of the 1998 ACM SIGMOD international conference on Management of data
Optimization of queries with user-defined predicates
ACM Transactions on Database Systems (TODS)
Counting, enumerating, and sampling of execution plans in a cost-based query optimizer
SIGMOD '00 Proceedings of the 2000 ACM SIGMOD international conference on Management of data
Garlic: a new flavor of federated query processing for DB2
Proceedings of the 2002 ACM SIGMOD international conference on Management of data
Automating physical database design in a parallel database
Proceedings of the 2002 ACM SIGMOD international conference on Management of data
Access path selection in a relational database management system
SIGMOD '79 Proceedings of the 1979 ACM SIGMOD international conference on Management of data
Uniformly-Distributed Random Generation of Join Orders
ICDT '95 Proceedings of the 5th International Conference on Database Theory
Automated Selection of Materialized Views and Indexes in SQL Databases
VLDB '00 Proceedings of the 26th International Conference on Very Large Data Bases
The Volcano Optimizer Generator: Extensibility and Efficient Search
Proceedings of the Ninth International Conference on Data Engineering
Toward a progress indicator for database queries
SIGMOD '04 Proceedings of the 2004 ACM SIGMOD international conference on Management of data
Analyzing plan diagrams of database query optimizers
VLDB '05 Proceedings of the 31st international conference on Very large data bases
Toward a progress indicator for program compilation
Software—Practice & Experience
Parallelizing query optimization
Proceedings of the VLDB Endowment
Dependency-aware reordering for parallelizing query optimization in multi-core CPUs
Proceedings of the 2009 ACM SIGMOD International Conference on Management of data
Truly adaptive optimization: the basic ideas
DEXA'06 Proceedings of the 17th international conference on Database and Expert Systems Applications
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 |
A query optimizer compares alternative plans in its search space to find the best plan for a given query. Depending on the search space and the enumeration algorithm, optimizers vary in their compilation time and the quality of the execution plan they can generate. This paper describes a compilation time estimator that provides a quantified estimate of the optimizer compilation time for a given query. Such an estimator is useful for automatically choosing the right level of optimization in commercial database systems. In addition, compilation time estimates can be quite helpful for mid-query reoptimization, for monitoring the progress of workload analysis tools where a large number queries need to be compiled (but not executed), and for judicious design and tuning of an optimizer.Previous attempts to estimate optimizer compilation complexity used the number of possible binary joins as the metric and overlooked the fact that each join often translates into a different number of join plans because of the presence of "physical" properties. We use the number of plans (instead of joins) to estimate query compilation time, and employ two novel ideas: (1) reusing an optimizer's join enumerator to obtain actual number of joins, but bypassing plan generation to save estimation overhead; (2) maintaining a small number of "interesting" properties to facilitate plan counting. We prototyped our approach in a commercial database system and our experimental results show that we can achieve good compilation time estimates (less than 30% error, on average) for complex real queries, using a small fraction (within 3%) of the actual compilation time.