Database designer
First Claim
Patent Images
1. A method performed by data processing apparatus, the method comprising:
- creating a set of candidate projections each being based on a column sort order in a set of column sort orders and being associated with properties of one or more tables in a set of tables to which the column sort order applies, wherein a column sort order is a sequence of one or more columns, each column'"'"'s data being stored in an order; and
until a stopping condition is reached, progressively narrowing the set of candidate projections and a set of queries by eliminating candidate projections that do not satisfy a performance improvement criterion for remaining queries based on the properties associated with the candidate projections;
wherein narrowing queries comprises;
generating an execution plan for each of one or more remaining queries in the set of queries wherein each execution plan is based on one or more of the remaining candidate projections;
determining a difference in a level of optimization of each execution plan between the execution plan as optimized by the set of candidate projections before a most recent narrowing of the set of candidate projections and the execution plan as optimized after the most recent narrowing of the set of candidate projections;
determining for each query whether the query is sufficiently optimized based on the determined difference in the level of optimization; and
eliminating queries from the set of queries that are sufficiently optimized.
9 Assignments
0 Petitions
Accused Products
Abstract
Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for a database designer and a database storage designer. In one aspect, a method includes creating a set of candidate projections and progressively narrowing the set of candidate projections and a set of queries by eliminating candidate projections that do not satisfy a performance improvement criterion for remaining queries based on the properties associated with the candidate projections.
52 Citations
38 Claims
-
1. A method performed by data processing apparatus, the method comprising:
-
creating a set of candidate projections each being based on a column sort order in a set of column sort orders and being associated with properties of one or more tables in a set of tables to which the column sort order applies, wherein a column sort order is a sequence of one or more columns, each column'"'"'s data being stored in an order; and until a stopping condition is reached, progressively narrowing the set of candidate projections and a set of queries by eliminating candidate projections that do not satisfy a performance improvement criterion for remaining queries based on the properties associated with the candidate projections; wherein narrowing queries comprises; generating an execution plan for each of one or more remaining queries in the set of queries wherein each execution plan is based on one or more of the remaining candidate projections; determining a difference in a level of optimization of each execution plan between the execution plan as optimized by the set of candidate projections before a most recent narrowing of the set of candidate projections and the execution plan as optimized after the most recent narrowing of the set of candidate projections; determining for each query whether the query is sufficiently optimized based on the determined difference in the level of optimization; and eliminating queries from the set of queries that are sufficiently optimized. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
-
-
36. A computer program product, encoded on a computer-readable storage device, operable to cause data processing apparatus to perform operations comprising:
-
creating a set of candidate projections each being based on a column sort order in a set of column sort orders and being associated with properties of one or more tables in a set of tables to which the column sort order applies, wherein a column sort order is a sequence of one or more columns, each column'"'"'s data being stored in an order; and until a stopping condition is reached, progressively narrowing the set of candidate projections and a set of queries by eliminating candidate projections that do not satisfy a performance improvement criterion for remaining queries based on the properties associated with the candidate projections; wherein narrowing queries comprises; generating an execution plan for each of one or more remaining queries in the set of queries wherein each execution plan is based on one or more of the remaining candidate projections; determining a difference in a level of optimization of each execution plan between the execution plan as optimized by the set of candidate projections before a most recent narrowing of the set of candidate projections and the execution plan as optimized after the most recent narrowing of the set of candidate projections; determining for each query whether the query is sufficiently optimized based on the determined difference in the level of optimization; and eliminating queries from the set of queries that are sufficiently optimized.
-
-
37. A system comprising:
-
a sort order generator configured to create a set of column sort orders derived from a set of queries, wherein a column sort order is a sequence of one or more columns, each column'"'"'s data being stored in an order; a projection generator configured to create a set of candidate projections, each being based on a column sort order in the set of column sort orders and being associated with properties of one or more tables in a set of tables to which the column sort order applies; and a candidate projection filter configured to filter one or more candidate projections from the set of candidate projections that do not satisfy a performance improvement criterion for the set of queries; a query filter configured to filter one or more queries from the set of queries that are sufficiently optimized by candidate projections in the set of candidate projections; wherein filtering queries comprises; generating an execution plan for each of one or more remaining queries in the set of queries wherein each execution plan is based on one or more of the remaining candidate projections; determining a difference in a level of optimization of each execution plan between the execution plan as optimized by the set of candidate projections before the most recent filtering of the set of candidate projections and the execution plan as optimized after the most recent filtering of the set of candidate projections; determining for each query whether the query is sufficiently optimized based on the determined difference in the level of optimization; and eliminating queries from the set of queries that are sufficiently optimized. - View Dependent Claims (38)
-
Specification