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
Translation validation for an optimizing compiler
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Uniformly-Distributed Random Generation of Join Orders
ICDT '95 Proceedings of the 5th International Conference on Database Theory
Massive Stochastic Testing of SQL
VLDB '98 Proceedings of the 24rd 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
Parallel SQL execution in Oracle 10g
SIGMOD '04 Proceedings of the 2004 ACM SIGMOD international conference on Management of data
Cost-based query transformation in Oracle
VLDB '06 Proceedings of the 32nd international conference on Very large data bases
A genetic approach for random testing of database systems
VLDB '07 Proceedings of the 33rd international conference on Very large data bases
Hi-index | 0.00 |
The query engine is the component inside a database system that is responsible for the compilation and execution of every SQL statement submitted by a database user or application. One of the most important steps of query compilation is query optimization. The goal of query optimization is to find the best execution plan based on metadata and statistics about the objects related to the tables referenced in the statement. There are two distinct kinds of query optimization: logical and physical. During logical optimization the structures of the query are changed by applying transformations such as view merging, subquery unnesting, etc. Physical optimization considers the physical properties of the tables (disk layout, access methods, size) and properties of the relational algebra operations (commuting joins) to find the best execution plan for a given query shape as presented by the logical optimization. The changes made to the SQL statement during query optimization can be temporary (to cost a particular optimization) or permanent (after an optimization is considered final). In this paper we discuss the quality problems that occur during the manipulation of the query structures that take place during query compilation with a focus on query optimization. We propose (1) a method to validate query structure change; (2) a method to validate plans that are discarded during query optimization but that may be picked under different circumstances.