System and method for processing database queries
AssigneeParAccel LLC
InventorsRichard L. Cole, Yijou Chen, William J. McKenna, Sergei Perfilov, Aman Sinha, Eugene Szedenits, Jr.
Life of this patent
Estimating the term…
Abstract
A system and/or method are implemented to process queries to a database. In particular, the processing of queries to the database is enhanced by enhancing the determination of join orders of tables implicated in queries. Join orders between relatively large numbers of tables are determined by dividing the set of tables to be ordered into a plurality of subsets of tables, and ordering the individual subsets of tables.
Claims17
A system configured to process queries to a database, the system comprising:
- a database server comprising one or more processors configured to execute one or more computer program modules;
- and
- a memory storing a plurality of computer program modules comprising:
- a query reception module configured to receive a database query, wherein the query implicates a set of tables associated with the database that must be joined to satisfy the query;
- a subset module configured to divide the set of tables into a plurality of subsets of tables based on information describing relationships between tables in the set of tables, wherein at least two of the subsets of tables determined by the subset module comprise a common table and each of the two subsets comprises tables absent from the other subset;
- an intermediate join module configured to determine subset join orders that separately order the tables within the individual subsets of tables;
- a final join module configured to determine a final join order that orders the subset join orders, thereby ordering all of the tables in the set;
- and
- an optimizer module for generating an execution plan for the query, wherein the execution plan is generated responsive to determining the final join order that orders all of the tables in the set.
A method for processing queries to a database, the method comprising:
- receiving, from a client processing platform, a database query at a database server, wherein the query implicates a set of tables associated with the database that must be joined to satisfy the query;
- dividing the set of tables into a plurality of subsets of tables based on information describing relationships between tables in the set of tables, wherein at least two of the subsets of tables determined by the subset module comprise a common table and each of the two subsets comprises tables absent from the other subset;
- determining a plurality of subset join orders that separately order the tables within the individual subsets of tables;
- determining a final join order that orders the subset join orders, thereby ordering all of the tables in the set;
- and
- generating an execution plan for the query, wherein the execution plan is generated responsive to determining the final join order that orders all of the tables in the set.
A computer program product having a non-transitory computer-readable storage medium storing computer-executable code for processing queries to a database, the code comprising:
- a query reception module configured to receive a database query, wherein the query implicates a set of tables associated with the database that must be joined to satisfy the query;
- a subset module configured to divide the set of tables into a plurality of subsets of tables based on information describing relationships between tables in the set of tables, wherein at least two of the subsets of tables determined by the subset module comprise a common table and each of the two subsets comprises tables absent from the other subset;
- an intermediate join module configured to determine subset join orders that separately order the tables within the individual subsets of tables;
- and
- and a final join module configured to determine a final join order that orders the subset join orders, thereby ordering all of the tables in the set;
- and
- an optimizer module for generating an execution plan for the query, wherein the execution plan is generated responsive to determining the final join order that orders all of the tables in the set.
Dependencies are inferred from the claim text.