Dynamic database query efficiency improvement
AssigneeBusiness Objects Software Ltd.
InventorAlan McShane
Life of this patent
Estimating the term…
Abstract
Examples of dynamic database query efficiency improvement are provided herein. Query portions of a received database query can be identified as candidates for replacement. The candidates for replacement can be query portions that reduce the efficiency of the query. Alternative queries can be determined that include substitute query portion(s) in place of candidate(s) for replacement. An expected performance of the alternative queries can be determined. Based at least in part on the expected performance of the alternative queries, one or more alternative queries can be selected as replacement database queries for the received database query.
Claims20
One or more computer-readable storage media storing instructions that, when executed by a computing device, perform a method of improving efficiency of a database query, the method comprising:
- receiving a database query;
- identifying one or more query portions of the database query as candidates for replacement;
- determining a plurality of alternative queries, the respective alternative queries including at least one substitute query portion in place of at least one of the candidates for replacement;
- determining an expected performance of at least some of the plurality of alternative queries;
- and
- based at least in part on the expected performance of the at least some of the plurality of alternative queries, selecting one or more alternative queries of the plurality of alternative queries as replacement database queries for the received database query.
A computer-implemented method of improving efficiency of a database query, the method comprising:
- receiving a structured query language (SQL) query;
- parsing the SQL query into a plurality of query portions;
- forming a plurality of alternative queries, the respective alternative queries including at least one substitute query portion in place of at least one of the plurality of query portions;
- simulating performance of the plurality of alternative queries;
- based at least in part on results of the simulating, selecting a subset of the plurality of alternative queries;
- performing the respective alternative queries of the subset using a sample dataset;
- and
- based at least in part on the performing, selecting an alternative query of the subset as a replacement database query for the received SQL query.
One or more server computers implementing a database query improvement system, the system comprising:
- a query parser that receives a database query and parses the database query into a plurality of query portions;
- a query rules data store containing a plurality of query rules, the respective query rules specifying at least one or more query portions and one or more corresponding substitute query portions;
- an alternative query generator that determines a plurality of alternative queries based on the plurality of query portions and at least some of the plurality of query rules;
- and
- a query evaluation engine that:
- determines an expected performance of at least some of the plurality of alternative queries;
- and
- based at least in part on the expected performance, selects one or more of the at least some of the plurality of alternative queries as replacement database queries for the parsed database query.
Dependencies are inferred from the claim text.